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