Iteracja po katalogu (DirectoryIterator)
Założenie: Nauczymy się, jak iterować po plikach i podkatalogach w danym katalogu za pomocą klasy DirectoryIterator
w PHP.
Krok po kroku:
- Utworzenie obiektu DirectoryIterator: Najpierw musimy utworzyć obiekt klasy
DirectoryIterator
, przekazując w konstruktorze ścieżkę do katalogu, który chcemy przeglądać. - Iteracja po elementach: Możemy iterować po elementach katalogu za pomocą pętli
foreach
. - Uzyskiwanie informacji o plikach i podkatalogach: Obiekt
SplFileInfo
oferuje wiele metod do pobierania informacji, takich jak nazwa pliku ($fileInfo->getFilename()
), pełna ścieżka ($fileInfo->getPathname()
), czy jest to plik czy katalog ($fileInfo->isDir()
), rozmiar pliku ($fileInfo->getSize()
) itd.
$iterator = new DirectoryIterator('/ścieżka/do/twojego/katalogu');
Pamiętaj, aby zastąpić '/ścieżka/do/twojego/katalogu'
rzeczywistą ścieżką do Twojego katalogu.
foreach ($iterator as $fileInfo) {
// Tutaj będzie kod przetwarzający każdy plik i podkatalog
}
W każdej iteracji zmienna $fileInfo
będzie obiektem klasy SplFileInfo
, który zawiera informacje o danym pliku lub podkatalogu.
foreach ($iterator as $fileInfo) {
if ($fileInfo->isFile()) {
echo "Plik: " . $fileInfo->getFilename() . "
";
} elseif ($fileInfo->isDir() && $fileInfo->getFilename() != "." && $fileInfo->getFilename() != "..") {
echo "Podkatalog: " . $fileInfo->getFilename() . "
";
}
}
Ten fragment kodu wyświetla nazwy plików i podkatalogów (pomijając “.” i “..”).
Ten przykład pokazuje podstawowe użycie klasy DirectoryIterator
. Zachęcamy do eksperymentowania z innymi metodami klasy SplFileInfo
, aby uzyskać bardziej zaawansowane funkcjonalności.