Analizowanie zawartości folderu w PHP
Załóżmy, że mamy dany pewien folder dir,
zawierający zarówno pliki, jak i foldery.
Pobierzmy tablicę nazw z tego folderu:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Dla każdej nazwy sprawdźmy, czy to plik czy folder:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Zwróć uwagę, że nazwa folderu, który skanujemy, jest zapisana w dwóch miejscach kodu. To nie jest zbyt wygodne. Wyjmijmy tę nazwę do osobnej zmiennej:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Wyświetlmy teraz zawartość wszystkich plików na ekran:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Można zauważyć, że ścieżka do pliku jest obliczana dwa razy. Wyjmijmy ją do osobnej zmiennej:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // ścieżka do pliku
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Dany jest folder. Wyświetl na ekranie kolumnę nazw podfolderów z tego folderu.
Dany jest folder. Wyświetl na ekranie kolumnę nazw plików z tego folderu.
Dany jest folder. Dopisz na końcu każdego pliku w tym folderze bieżący moment czasu.