PHP kausta sisu analüüs
Oletagem, et meil on antud kaust dir,
mis sisaldab nii faile kui ka kaustu.
Hankigem sellest kaustast nimede massiiv:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Kontrolligem iga nime puhul, kas see on fail või kaust:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Pange tähele, et kausta nimi, mida me skannime, on kirjutatud kahes kohas koodis. See pole väga mugav. Viime selle nime eraldi muutujasse:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Väljastagem nüüd kõikide failide jaoks ekraanile nende sisu:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Võib märgata, et faili tee arvutatakse kaks korda. Viime selle eraldi muutujasse:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // faili tee
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Antud on kaust. Kuva ekraanile veerg selle kausta alamkaustade nimesid.
Antud on kaust. Kuva ekraanile veerg selle kausta failide nimesid.
Antud on kaust. Kirjuta iga selle kausta faili lõppu praegune ajahetk.