Bonjour à toutes et à tous,

Est ce que vous pouvez me dire pourquoi ce code me supprime aussi le fichier /doc ????

                                        function recursive_unlink($dossier_traite)
                                        {
                                            foreach(glob($dossier_traite . '/*') as $file)
                                            {
                                              is_dir($file) ? recursive_unlink($file) : unlink($file);
                                            }
                                            rmdir($dossier_traite);
                                        }

                                        $dossier_traite = "../doc/".$contenu;

                                        recursive_unlink($dossier_traite);

???

Estc ce que c'est "recursive" qui provoque ça ?

merci par avance pour votre aide

3 réponses


flan
Réponse acceptée

Ahaha, j'ai déjà vu ce code quelque part sur ce forum :^

Il faut ignorer le tout dernier élément traîté. Vu que tu n'as pas la liste, tu vas devoir vérifier si l'élement qui doit être supprimé est justement celui que tu ne souhaites pas supprimer, donc rajoute juste une condition comme if (strstr($file, '../doc/') !== false) continue;.

Merci flan oui :) tu dois connaitre ce code :)

comme ça ?

                                        function recursive_unlink($dossier_traite)
                                        {
                                            foreach(glob($dossier_traite . '/*') as $file)
                                            {
                                                if (strstr($file, '../doc/') !== false) continue;
                                                    is_dir($file) ? recursive_unlink($file) : unlink($file);

                                            }
                                            rmdir($dossier_traite);
                                        }

tant qu'il y a un fichier, s'il ne s'appelle pas /doc/ ça continue ?! c'est ça ?

J'ai testé ça parrait fonctionner, mais je pensais avoir trouvé un bug parce que c'est après midi il y a eut deux cas où la fonction à supprimé le /doc/ mais je ne suis pas parvenue à identifier la cause exacte... a surveiller....

Une nouvelle fois merci Flan