PHP katalogo turinio analizė
Tarkime, kad turime tam tikrą katalogą dir,
kuriame yra ir failų, ir katalogų.
Gaukime šio katalogo pavadinimų masyvą:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Patikrinkime kiekvienam pavadinimui, ar tai failas, ar katalogas:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Atkreipkite dėmesį, kad katalogo, kurį skenuojame, pavadinimas parašytas dviem kodo vietose. Tai nėra labai patogu. Išskirkime šį pavadinimą į atskirą kintamąjį:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Dabar visiems failams išveskime į ekraną jų turinį:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Galima pastebėti, kad failo kelias apskaičiuojamas du kartus. Išskirkime jį į atskirą kintamąjį:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // failo kelias
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Duotas katalogas. Išveskite į ekraną pogrupių iš šio katalogo pavadinimų stulpelį.
Duotas katalogas. Išveskite į ekraną failų iš šio katalogo pavadinimų stulpelį.
Duotas katalogas. Įrašykite į kiekvieno failo galą esamą laiko momentą.