Bonjour à tous je débute en php et
voici mon scripte qui essai d'effacer un répertoire si il est vide sinon supprime tt les fichiers avent si le répertoire contient un autre répertoire on appel la fonction encore une fois (récursivité)
mon problème quand je lance l'exécution j'ai l'erreur suivante Call to a member function read() on a non-object in (chemin) on
[php]
[/php]line 25 qui est la ligne
while (false !== ($entry = $f->read())) ?? aider moi svp
/*on vérifie l'existance du repertoire
* On ouvre le dossier, si dossier vide on le supprime sinon
* On détermine la nature de chaque élément se trouvant à l'intérieur (dossier ou fichier).
* Si c'est un fichier, on le supprime.
* Si c'est un dossier, on rappel la fonction
*/
//fonction recursive
function delRep($path,$directory){
//on vérifie si le repertoire existe
$root=$path.'/'.$directory;
if (is_dir($root)) {
echo($root);
//on ouvre le dossier
$dir = @dir($root);
//si le dossier vide alors on le ferme et supprime
if (empty($dir)){
closedir($root);
rmdir($root);
echo'fichier vide,repertoire suprimer ';
}else{
//pour chaque element du dossier
while (false !== ($entry = $f->read())) {
//en excluant les dossiers parent et actuel
if ($entry = '.' || $entry = '..') continue;
//si l'entée est un dossier on appel la fonction delRep (récursivité)
if (is_dir($entry)){
delRep($root,$entry);
}else{//sinon l'element est un fichier, on le supprime
unlink($entry);
echo'fichier supprimer';
}
}
}
}
}
$path='...';
//appel de la fonction
delRep($path,'03-11-2010');
?>