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