Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

AW: [PHP] Verzeichnisse rekursiv in ein Array schreiben

  Alt 1. Mai 2011, 10:07
Und noch ein Hinweis zu opendir() und Konsorten: seit einiger Zeit gibt es die DirectoryIterator, welche das Arbeiten mit Verzeichnissen erleichtert:
Code:
$iterator = new DirectoryIterator($directory);
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        unlink($fileinfo->getPathname());
    }
}
Der angegebene Code z.B. loescht alle Dateien in einem Verzeichnis.
Um das Ganze rekursiv zu machen, gibt es z.B. die RecursiveDirectoryIterator-Klasse:
Code:
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir()) {
        rmdir($fileinfo->getPathname());
    } else {
        unlink($fileinfo->getPathname());
    }
}
Der Code macht das angegebene Verzeichnis rekursiv leer. Ist doch gleich viel schoener, oder?

Ausserdem gibt es zum sinnvollen Arbeiten mit den $fileinfo-Objekten geschickte Methoden: isDot(), isExecutable(), isFile(), isLink(), sowie Methoden zum Holen von Filetimes, etc. Das erspart es dir, OS-spezifische Dinge in deinen Code einzubauen.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat