Rekursives löschen von Verzeichnissen
Mit dem folgenden Script kann man Verzeichnisse und ihre Inhalte rekursiv löschen lassem
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <?php // Rekursives löschen von Verzeichnissen. function clr_dir($dir) { if(@ ! $opendir = opendir($dir)) { return false; } while(false !== ($readdir = readdir($opendir))) { //wenn es nicht die root-Ebene ist gehe weiter if($readdir !== '..' && $readdir !== '.') { //Lösche unnötige Leerzeichen $readdir = trim($readdir); //Wenn es eine Datei ist if(is_file($dir.'/'.$readdir)) { //Lösche sie, sonst steige neu ein als false if(@ ! unlink($dir.'/'.$readdir)) { return false; } } //Wenn es ein Verzeichniss ist elseif(is_dir($dir.'/'.$readdir)) { // Rufe die Funktion rekursiv mit false auf if(! clr_dir($dir.'/'.$readdir)) { return false; } } } } //Schliesse das Verzeichnis closedir($opendir); // Lösche das Verzeichnis if(@ ! rmdir($dir)) { //Wenn löschen nicht möglich,steige neu ein als false return false; } // Ausstieg aus der Funktion als true return true; } // Funktionsaufruf mit Angabe des rek. zu löschendem Verzeichnisses clr_dir('verzeichnisname'); ?> |