scandir
funkcja
Zwraca posortowaną tablicę nazw plików i katalogów z podanego katalogu (łącznie z . i ..). Zwraca false przy błędzie.
scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false
scandir skanuje podany katalog i zwraca tablicę zawierającą nazwy wszystkich plików oraz podkatalogów — zawsze razem z wpisami . (bieżący katalog) i .. (katalog nadrzędny). Wynik domyślnie sortowany jest rosnąco alfabetycznie; możesz użyć SCANDIR_SORT_DESCENDING lub SCANDIR_SORT_NONE, jeśli zależy ci na innej kolejności. Gdy katalog nie istnieje lub brak uprawnień, funkcja zwraca false.
Bezpieczeństwo: nigdy nie przekazuj niezaufanych danych użytkownika bezpośrednio jako $directory — grozi to atakiem path-traversal, który może ujawnić zawartość dowolnego katalogu na serwerze.
<?php
declare(strict_types=1);
$katalog = __DIR__ . '/pliki';
$wpisy = scandir($katalog);
if ($wpisy === false) {
echo 'Nie udało się odczytać katalogu.';
} else {
// Pomijamy . i .. i wyświetlamy tylko właściwe pliki
$pliki = array_diff($wpisy, ['.', '..']);
foreach ($pliki as $plik) {
echo htmlspecialchars($plik, ENT_QUOTES, 'UTF-8') . PHP_EOL;
}
}