Heim >Backend-Entwicklung >PHP-Tutorial >Wie lösche ich Verzeichnisse und deren Inhalte rekursiv in PHP?

Wie lösche ich Verzeichnisse und deren Inhalte rekursiv in PHP?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-08 03:58:08598Durchsuche

How to Recursively Delete Directories and Their Contents in PHP?

Rekursives Löschen von Verzeichnissen und deren Inhalten in PHP

Bei der Aufgabe, ein Verzeichnis und seine gesamte Struktur in PHP zu löschen, wird häufig ein rekursiver Ansatz verwendet gesucht. Dabei werden nicht nur Dateien im Zielverzeichnis, sondern auch alle verschachtelten Unterverzeichnisse und deren Inhalte effizient gelöscht.

Lösung:

Der vom Benutzer beigesteuerte Abschnitt des PHP-Handbuchs für rmdir bietet Folgendes eine praktische Implementierung für dieses rekursive Löschszenario:

function rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                if (is_dir($dir . DIRECTORY_SEPARATOR . $object) && !is_link($dir . "/" . $object)) {
                    rrmdir($dir . DIRECTORY_SEPARATOR . $object);
                } else {
                    unlink($dir . DIRECTORY_SEPARATOR . $object);
                }
            }
        }
        rmdir($dir);
    }
}

Wie es ist Funktioniert:

  1. Die Funktion rrmdir() beginnt mit der Überprüfung, ob das angegebene $dir ein Verzeichnis ist.
  2. Sie durchläuft dann den Inhalt des Verzeichnisses mit scandir.
  3. Für jede Datei oder jedes gefundene Unterverzeichnis:

    • Wenn Es handelt sich um ein Unterverzeichnis (nicht „.“ oder „..“), es prüft, ob es sich um ein echtes Unterverzeichnis (kein Link) handelt und ruft rekursiv rrmdir() auf, um seinen Inhalt zu löschen.
    • Andernfalls wird das direkt gelöscht Datei.
  4. Sobald alle Inhalte entfernt wurden, befindet sich schließlich das ursprüngliche Verzeichnis ($dir). gelöscht.

Das obige ist der detaillierte Inhalt vonWie lösche ich Verzeichnisse und deren Inhalte rekursiv in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn