Usuwanie katalogów

Założenie: Nauczymy się, jak usuwać katalogi i ich zawartość w PHP.

Krok po kroku:

  1. Usuwanie pustego katalogu: Funkcja rmdir() usuwa pusty katalog.
  2. 
    $katalog = 'sciezka/do/pustego/katalogu';
    if (rmdir($katalog)) {
        echo "Katalog '$katalog' został usunięty.";
    } else {
        echo "Błąd podczas usuwania katalogu '$katalog'.";
    }
    				

    Ten kod sprawdza, czy katalog istnieje i próbuje go usunąć. rmdir() zwraca true w przypadku sukcesu i false w przypadku błędu.

  3. Usuwanie katalogu z zawartością: Funkcja rmdir() nie zadziała, jeśli katalog nie jest pusty. Do usunięcia katalogu z zawartością potrzebujemy rekurencyjnego rozwiązania.
  4. 
    function usunKatalogRekurencyjnie($katalog) {
        if (!is_dir($katalog)) return false;
        $pliki = scandir($katalog);
        foreach ($pliki as $plik) {
            if ($plik == '.' || $plik == '..') continue;
            $sciezka = $katalog . '/' . $plik;
            if (is_dir($sciezka)) {
                usunKatalogRekurencyjnie($sciezka);
            } else {
                unlink($sciezka);
            }
        }
        return rmdir($katalog);
    }
    
    $katalog = 'sciezka/do/katalogu/z/zawartoscia';
    if (usunKatalogRekurencyjnie($katalog)) {
        echo "Katalog '$katalog' i jego zawartość zostały usunięte.";
    } else {
        echo "Błąd podczas usuwania katalogu '$katalog'.";
    }
    				

    Ta funkcja najpierw sprawdza, czy podana ścieżka jest katalogiem. Następnie rekurencyjnie przechodzi przez wszystkie pliki i podkatalogi, usuwając je za pomocą unlink() (dla plików) i wywołując samą siebie (dla podkatalogów). Na końcu usuwa sam katalog.

Pamiętaj, aby zawsze uważać podczas usuwania katalogów i ich zawartości. Ten przykład pokazuje podstawowe metody, ale w rzeczywistych aplikacjach należy dodać obsługę błędów i walidację danych wejściowych.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *