Bonsoir,

J'ai trouvé un script me permettent de vider et de supprimer un répertoire. Seulement j'ai une erreur qui me dit "Warning: rmdir(file:///E:/wamp/www/www.ahplaylist.net/albums/test/) <a href='function.rmdir'>function.rmdir</a>]: Invalid argument in E:\wamp\www\www.ahplaylist.net\alexandre\edit\delet.php on line 66"

Je me suis dit peut être que sa vient d'un espace invisible alors dans la foulé j'ai mis un trim mais rien n'y change si je met le chemin à la main j'ai la même erreur.

function clear_dir($dir, $delete = true) {
                $dossier = $dir;
                $dir = opendir($dossier); 
                while($file = readdir($dir)) { 
                    if(!in_array($file, array(".", ".."))){
                        if(is_dir($dossier.$file)) {
                            clear_dir($dossier.$file, true);
                        } else {
                            $rep = trim($dossier.$file);
                            unlink($rep);
                        }

                    }
                } 
                closedir($dir);

                if($delete == true) {
                    $rep = trim($dossier);
                    rmdir($rep);
                }
            }

            $rep = "file://E:/wamp/www/www.ahplaylist.net/albums/".$_GET'a']."/";
            clear_dir($rep);

Sachant que je cherche à supprimer un répertoire ainsi que tout les fichiers et dossier qu'il contient. Je vous remerciement par avance si vous avez trouver l’intrus ^^

7 réponses


Gyuki
Réponse acceptée

Bonjour,

Enlève le "file://" et met le chemain direct

$rep = "E:/wamp/www/www.ahplaylist.net/albums/".$_GET'a']."/";
clear_dir($rep);

ou essaye

$rep = $_SERVER'DOCUMENT_ROOT']."www.ahplaylist.net/albums/".$_GET'a']."/";
clear_dir($rep);

Cordialement.

Bonjour,
Que vaut $_GET'a']?

vavoir
Auteur

$_GET'a'] = au nom de l'artiste; exemple: "test"
je précise que la variable est bien récupéré.

Salut,
tu n'as peut être pas toutes les permissions sur le dossier ?
Regarde de ce coté là...

vavoir
Auteur

J'ai fait un "is_writable" et le fichier est accessible en écriture

Par contre, j'ai un doute sur le nom du chemin du dossier.
Ne serait-il pas plus judicieux d'utiliser

dirname(_FILE_) . '/reste_du_chemin/';

Car le "file://E:/" me parait bizzare...

vavoir
Auteur

merci @Gyuki cela fonctionne avec $_SERVER'DOCUMENT_ROOT']