Verzeichnis mit Dateien löschen!

neopayne

Erfahrenes Mitglied
Hallo,

ich will ein Verzeichnis mit den enthaltenen Daten mit einem PHP-Befehl löschen. Wie ist das möglich?

mit rmdir() gehts nicht!
 
PHP:
$ordner = "ordner";

$dir = opendir($ordner);
while ($file = readdir($dir)) {
    unlink($file);
}
closedir($dir);
rmdir($ordner);
So ungefäghr meinte mein Vorposter das :)
 
also irgendwie klappt das bei mir nicht ganz... ich hab deinen Code verwendet und kriege folgende Fehlermeldungen:

Warning: unlink(.): Is a directory

Warning: unlink(..): Is a directory

Warning: unlink(adresse1.jpg): No such file or directory

Warning: unlink(cc_generals_logo.gif): No such file or directory

Warning: unlink(BDS-ZF-Scheibe.gif): No such file or directory

Warning: rmdir(../gallerys/jölkdss): Directory not empty
 
PHP:
function del_dir ($ordner) {
  $dir = opendir($ordner);
  while ($file = readdir($dir)) {
    if ($file != '..' && $file != '.') {
      if (is_file ($ordner."/".$file)) unlink($ordner."/".$file);
      if (is_dir ($ordner."/".$file)) del_dir($ordner."/".$file);
    }
  }
  closedir($dir);
  rmdir($ordner);
}

Sowas vielleicht?
 
Zuletzt bearbeitet:
hi voodoo

dein Code zeigt bei mir keine Wirkung... es kommt keine Fehlermeldung und es wird auch nix entfehrt weder eine Datei noch ein Verzeichnis. Woran könnte das liegen?

Ordner und Dateien haben alle die Freigabe 777
 
Whoooops, hatte meins nur eben abgetippt und weder an eine rekursive Funktion noch an . und .. gedacht ;)

Naja, fühl dich nicht beledigt, aber kann es sein das du in PHP noch keine ausreichende Erfahrung hast um Funktionen zu nutzen (versteh das nicht falsch!)

Falls dem so ist:
PHP:
function del_dir ($ordner) {
  $dir = opendir($ordner);
  while ($file = readdir($dir)) {
    if ($file != '..' && $file != '.') {
      if (is_file ($ordner."/".$file)) unlink($ordner."/".$file);
      if (is_dir ($ordner."/".$file)) del_dir($ordner."/".$file);
    }
  }
  closedir($dir);
  rmdir($ordner);
}
//Hier wird nun die Funktion aufgerufen
del_dir("DeinOrdner");
Sorry falls ich mich bezüglich deiner PHP-Kenntnisse irre :-(
 
nee is Richtig ich hab vor einem Monat mit PHP angefangen... hab zwar schonmal davon gehört das es "function" gibt aber noch nie was mit gemacht. Bin also nicht beleidigt

Vielen Dank für Eure Hilfe - jetzt geht alles
 
Du kannst auch
exec("rm -r zu-löschender-order");
verwenden. Mit dem Unix-Befehl wird der Ordner, samt Inhalt, ohne Rückfrage gelöscht.
MfG
dirigent
 
Zurück