Hin und wieder hat man einen Ordner mit zig verschiedenen Dateien am Server, den man per PHP löschen möchte oder muss. Dies kann man relativ einfach mit wenigen Zeilen PHP und einer while Schleife erledigen. Wichtig dabei sind die 3 PHP Befehle opendir (öffnet ein Verzeichnis zur weiteren Verarbeitung), readdir (liest die Dateien aus) und unlink (löscht eine Datei). Hier nun das komplette Script:
//Ordnername festlegen in dem die zu löschenden Files liegen $ordnername = "mein/ordnername/"; //überprüfen ob das Verzeichnis überhaupt existiert if (is_dir($ordnername)) { //Ordner öffnen zur weiteren Bearbeitung if ($dh = opendir($ordnername)) { //Schleife, bis alle Files im Verzeichnis ausgelesen wurden while (($file = readdir($dh)) !== false) { //Oft werden auch die Standardordner . und .. ausgelesen, diese sollen ignoriert werden if ($file!="." AND $file !="..") { //Files vom Server entfernen unlink("mein/ordnername/$file"); } } //geöffnetes Verzeichnis wieder schließen closedir($dh); } }
Oder schöner gleich als Funktion verpackt
function deleteFilesFromDirectory($ordnername){ //überprüfen ob das Verzeichnis überhaupt existiert if (is_dir($ordnername)) { //Ordner öffnen zur weiteren Bearbeitung if ($dh = opendir($ordnername)) { //Schleife, bis alle Files im Verzeichnis ausgelesen wurden while (($file = readdir($dh)) !== false) { //Oft werden auch die Standardordner . und .. ausgelesen, diese sollen ignoriert werden if ($file!="." AND $file !="..") { //Files vom Server entfernen unlink("".$ordnername."".$file.""); } } //geöffnetes Verzeichnis wieder schließen closedir($dh); } } } //Funktionsaufruf - Directory immer mit endendem / angeben deleteFilesFromDirectory("mein/ordnername/");
Directory schreibt:
Dies kann man relativ einfach mit wenigen Zeilen PHP und einer while Schleife erledigen.
uegk schreibt:
Wie wärs wenn mann das verzeichnis löscht und neu macht? Geht vermutlich schneller
steve88u schreibt:
Ausser man hat im übergeordneten Verzeichnis die Berechtigung nicht Verzeichnisse zu erstellen, dann geht das nur mit Verzeichnisinhalt löschen 😉
André schreibt:
Hallo,
ist es möglich das Verzeichnis erst nach 3 Minuten zu löschen?
Gruss André
uwe367Uwe schreibt:
Klappt soweit ganz gut, Danke:)
Jedoch ist nicht jeder Server gleich konfiguriert und so wäre es sicher angebracht das Script anzuweisen die zu löschenden Dateien auf CHMOD 777 zu setzen damit sie gelöscht werden können.
Wäre es möcglch das Script dahingehend zu erweitern?
Gruss Uwe