22.12 Ein Verzeichnis und seinen Inhalt entfernen

Problem

Sie möchten ein Verzeichnis und seinen gesamten Inhalt löschen, Unterverzeichnisse und deren Inhalt eingeschlossen.

Lösung

Nutzen Sie RecursiveDirectoryIterator und RecursiveIteratorIterator und geben Sie dabei an, dass Kinder (Dateien und Unterverzeichnisse) vor den Eltern aufgeführt werden sollen, wie Sie es in Listing 22.6 sehen.

<?php
function obliterate_directory($dir) {
    $iter = new RecursiveDirectoryIterator($dir);
    foreach (new RecursiveIteratorIterator($iter, RecursiveIteratorIterator::CHILD_FIRST) as $f) {
        if ($f->isDir()) {
            rmdir($f->getPathname());
        } else {
            unlink($f->getPathname());
        }
    }
    rmdir($dir);
}
obliterate_directory('/tmp/junk');
?>

Listing 22.6 Ein Verzeichnis vernichten

Diskussion ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.