Ich habe ein Problem mit der Funktion rec_rmdir, die auf dieser Seite vorgestellt wird. https://wiki.selfhtml.org/wiki/PHP/Tutorials/Rekursives_Löschen_von_Verzeichnissen
Meine Verzeichnisstruktur: Index.php Unterverzeichnis: NeuerOrdner – darin befinden sich bild1.jpg, bild2.jpg.
Wenn das Verzeichnis NeuerOrdner leer ist, kann ich es mit der index.php und rmdir („NeuerOrdner“); problemlos löschen.
Wenn ich in der index.php den Code aus dem obigen Tutorial verwende (wenn „NeuerOrdner“ nicht leer ist), passiert nichts:
<?php
$path = „NeuerOrdner“;
// rec_rmdir - loesche ein Verzeichnis rekursiv
// Rueckgabewerte:
// 0 - alles ok
// -1 - kein Verzeichnis
// -2 - Fehler beim Loeschen
// -3 - Ein Eintrag eines Verzeichnisses war keine Datei und kein Verzeichnis und
// kein Link
function rec_rmdir ($path) {
// schau' nach, ob das ueberhaupt ein Verzeichnis ist
if (!is_dir ($path)) {
return -1;
}
// oeffne das Verzeichnis
$dir = @opendir ($path);
// Fehler?
if (!$dir) {
return -2;
}
// gehe durch das Verzeichnis
while ($entry = @readdir($dir)) {
// wenn der Eintrag das aktuelle Verzeichnis oder das Elternverzeichnis
// ist, ignoriere es
if ($entry == '.' || $entry == '..') continue;
// wenn der Eintrag ein Verzeichnis ist, dann
if (is_dir ($path.'/'.$entry)) {
// rufe mich selbst auf
$res = rec_rmdir ($path.'/'.$entry);
// wenn ein Fehler aufgetreten ist
if ($res == -1) { // dies duerfte gar nicht passieren
@closedir ($dir); // Verzeichnis schliessen
return -2; // normalen Fehler melden
} else if ($res == -2) { // Fehler?
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler weitergeben
} else if ($res == -3) { // nicht unterstuetzer Dateityp?
@closedir ($dir); // Verzeichnis schliessen
return -3; // Fehler weitergeben
} else if ($res != 0) { // das duerfe auch nicht passieren...
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler zurueck
}
} else if (is_file ($path.'/'.$entry) || is_link ($path.'/'.$entry)) {
// ansonsten loesche diese Datei / diesen Link
$res = @unlink ($path.'/'.$entry);
// Fehler?
if (!$res) {
@closedir ($dir); // Verzeichnis schliessen
return -2; // melde ihn
}
} else {
// ein nicht unterstuetzer Dateityp
@closedir ($dir); // Verzeichnis schliessen
return -3; // tut mir schrecklich leid...
}
}
// schliesse nun das Verzeichnis
@closedir ($dir);
// versuche nun, das Verzeichnis zu loeschen
$res = @rmdir ($path);
// gab's einen Fehler?
if (!$res) {
return -2; // melde ihn
}
// alles ok
return 0;
}
?>
Wie Ihr seht kenn ich mich nicht aus. Auch wenn ich im gleichen Verzeichnis wie die index.php die Datei recrmdir.inc.php hineinstelle und die index.php wie folgt aussieht, funktioniert es nicht.
<?php
$path = „NeuerOrdner“;
require 'recrmdir.inc.php';
?>
Bitte welche Fehler mache ich bei der Parameter Übergabe? Danke schon mal für eure Hilfe!
GLG Margit