tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von Yugeen
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Maniac
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
571
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    live4music live4music ist offline Mitglied Bronze
    Registriert seit
    Mar 2011
    Beiträge
    47
    Hallo Community,

    ich habe ein kleines Problem, ich versuche eine Funktion zu schreiben, die Ordner sammt Unterordner löscht. Habe bis jetzt 2 Varianten versucht, aber es geht irgendwie nicht. Wenn ich halt alle Unterordner lösche, dann wir mein Hauptordner gelöscht, so wie es sein sollte, aber sobald ich Unterordner estelle geht gar nichts. Vllt. habe ich irgendwo einen Fehler im Code ?

    Danke schon mal für die Feedbacks.

    Hier sind meine zwei Varianten

    1.
    PHP-Code:

    function album_delete($alb_id)
    {

        
    $album $_SERVER['DOCUMENT_ROOT'] . "/uploads/albums/".$alb_id."/";
        
    $files glob($album '*');

       if (
    $files)
        {
            foreach(
    $files AS $file)
            {
                if (
    is_dir($file))
                {

                    if (!@
    unlink($file))
                    {
                        
    chmod($file0777);
                        
    unlink($file);
                    }
                }
            }
        }

        if (!@
    rmdir($album))
        {
            
    chmod($album0777);
            
    rmdir($album);
        }

    2.
    PHP-Code:
    function album_delete($alb_id)
    {

        
    $album $_SERVER['DOCUMENT_ROOT'] . "/uploads/albums/".$alb_id;

        
    chmod($album,0777)

        if (
    is_dir($album))
        {
            
    $folder opendir($album);

            while(
    $filename readdir($folder))
            {

                if (
    $filename != "." && $filename != "..")
                    {
                        
    unlink($album."/".$filename);
                    }
            }

        
    closedir($folder);
        
    rmdir($album);

        }


     

  2. #2
    Avatar von Yugeen
    Yugeen Yugeen ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    69
    Irgendwelche Fehlermeldungen?

    PS:
    im 2. PHP-Code in der zeile mit
    PHP-Code:
    chmod($album,0777)//;<-- fehlt das ';' 
    Copy und Paste fehler?
    live4music bedankt sich. 

  3. #3
    live4music live4music ist offline Mitglied Bronze
    Registriert seit
    Mar 2011
    Beiträge
    47
    och hab wohl ausversehen gelöscht ) danke.

    nein, keine Fehlermeldungen und es wird auch nichts gelöscht. Beide Scripts zeigen auch den Inhalt, aber dass mit löschen will irgendwie nicht klappen.

    Sieht so aus: Hauptordner/ 2 Unterordner / und Inhalt

    sobald ich Unterordner von Hand löschen, wird der Hauptordner per PHP gelöscht, sobald ich wieder Unterordner anlege passiert wieder nix.
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Eine Rekursive Funktion währe angesagt, die durch jeden Unterordner durchgeht und dort ebenfalls die Dateien löscht. Leere Ordner lassen sich nicht löschen.

    PHP-Code:
    function deleteFolder($albumPath){
        
    $items scandir($albumPath);

        foreach(
    $items as $itemName){
            if (
    $itemName != "." && $itemName != "..")
                
    $itemPath $album.'/'.$itemName;
                if(
    isdir($itemPath)){
                    
    // Unterordner löschen
                    
    deleteFolder($itemPath);
                }else{
                    
    // Datei löschen
                    
    unlink($itemPath);
                }
            }
        }
        
    rmdir($albumPath);    

    live4music bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Hier meine Funktion zum Rekursiven löschen eines Verzeichnisses:
    PHP-Code:
    function deleteDirectory($dir) {
            if (!
    file_exists($dir)) return true;
            
            if (!
    is_dir($dir) || is_link($dir)) return unlink($dir);
            
                foreach (
    scandir($dir) as $item) {
                    
                    if (
    $item == '.' || $item == '..') continue;
                    
                    if (!
    $this->deleteDirectory($dir "/" $item))
                    {
                        
    chmod($dir "/" $item0777);
                        if (!
    $this->deleteDirectory($dir "/" $item)) return false;
                    };
                }
                
                return 
    rmdir($dir);
        } 
    live4music bedankt sich. 
    Die Schweine von heute sind unsere Schnitzel von morgen!

  6. #6
    live4music live4music ist offline Mitglied Bronze
    Registriert seit
    Mar 2011
    Beiträge
    47
    so jetzt habe ich es, dankeschön an alle !
     

Ähnliche Themen

  1. Ordner, Unterordner und Dateien löschen per VBS
    Von Supe im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 10.03.10, 09:09
  2. Ordner und dessen Unterordner löschen
    Von EddieG im Forum PHP
    Antworten: 15
    Letzter Beitrag: 23.10.09, 00:11
  3. FTP Ordner und Unterordner downloaden
    Von gpsscout im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 03.07.07, 03:55
  4. [Batch] Bestimmte Ordner+Inhalt aus Verzeichniss löschen
    Von TorC im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 10.02.05, 23:34
  5. Ordner und Unterordner in ZIP packen
    Von NightWatcher im Forum PHP
    Antworten: 8
    Letzter Beitrag: 07.08.04, 14:39