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<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Kontrolligem iga nime puhul, kas see on fail või kaust:
php<?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<?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<?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<?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);
}
}
?>
Задание 1
Antud on kaust. Kuva ekraanile veerg selle kausta alamkaustade nimesid.
Задание 2
Antud on kaust. Kuva ekraanile veerg selle kausta failide nimesid.
Задание 3
Antud on kaust. Kirjuta iga selle kausta faili lõppu praegune ajahetk.