Ordner und Dateien mittels PHP löschen

Es kann immer wieder einmal vorkommen, dass Dateien oder Ordner mittels FTP-Verbindung nicht gelöscht werden kann. Die Ursache hierbei ist, das die Rechte vom Server vergeben wurden sind und somit FTP-Benutzern keinen Zugriff gewährt wird.

Wenn man über keinen SSH-Zugang für seinen Webspace verfügt, kann man sich unter Zuhilfenahme von PHP die überflüssigen Ordnern und Dateien auf dem Server löschen.

Dies geschieht mit einer einfachen PHP-Funktion:

<?php
    /**
    * Loescht Dateien und Ordner innerhalb eines Ordners
    * 
    * @param string $file Pfad zum Ordner, welcher geloescht werden soll
    * @return nix
    */
    function DeleteFolderFiles($file) { 

        // Dateiberechtigung auf Vollzugriff stellen
        chmod($file,0777); 

        // Pruefen ob es ein Ordner ist
        if (is_dir($file)) { 

            // Resource oeffnen
            $resource = opendir($file); 

            // Rekursiv durch den Ordner durchgehen
            while($filename = readdir($resource)) { 

                // uebergeordnete, welche zur Navigation dienen, werden ignoriert
                if ($filename != "." && $filename != "..") { 

                    // Datei innerhalb des Ordners loeschen
                    DeleteFolderFiles($file."/".$filename); 
                } 
            } 

            // Resource schliessen
            closedir($resource); 

            // Ordner loeschen
            rmdir($file); 
        } else { 
            // Wenn es sich nicht um einen Ordner handelt -> Datei loeschen
            unlink($file); 
        }
    } 

    // Funktion ausfueren
    // Hierbei wird am besten der absolute Pfad des zu loeschenden Ordners angegeben
    DeleteFolderFiles($_SERVER["DOCUMENT_ROOT"] . "/zu/loeschender/ordner"); 
?>

Am Ende der Funktion wird noch der absolute Pfad zum Ordner angegeben welcher gelöscht wurden soll. Der Quelltext wird in eine Datei mit der Endung .php verpackt und auf den Server, mittels FTP, hochgeladen. Schließlich wird die Datei ausgeführt und alles ist wieder prima Smiley.