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;
    }
}