rmdir

funkcja

Usuwa pusty katalog o podanej ścieżce. Zwraca true przy sukcesie, false gdy katalog nie istnieje, nie jest pusty lub brak uprawnień.

rmdir(string $directory, ?resource $context = null): bool

rmdir usuwa katalog wskazany przez $directory, ale tylko jeśli jest on pusty — funkcja nie działa rekurencyjnie. Jeśli katalog zawiera jakiekolwiek pliki lub podkatalogi, operacja się nie powiedzie i funkcja zwróci false. Aby usunąć całe drzewo katalogów, musisz najpierw rekurencyjnie usunąć jego zawartość (np. za pomocą unlink i rmdir w pętli lub klasy RecursiveDirectoryIterator).

Bezpieczeństwo: nie przekazuj niezaufanych danych jako ścieżki katalogu — grozi to przypadkowym lub złośliwym usunięciem katalogów systemowych (path-traversal).

<?php
declare(strict_types=1);

$katalog = __DIR__ . '/stary_katalog';

if (is_dir($katalog)) {
    $sukces = rmdir($katalog);
    if ($sukces) {
        echo 'Katalog został usunięty.';
    } else {
        echo 'Nie udało się usunąć katalogu (może nie być pusty lub brak uprawnień).';
    }
} else {
    echo 'Podana ścieżka nie jest katalogiem.';
}