Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction pour tout supprimer ....

Problème lors de la suppression de dossier ..

    30 décembre 2005 à 1:08:17

    Voila ... Je suis en train de coder une fonction qui permetrait en un seul appel, de supprimer absolument tout sur le ftp (du mons, l'ensemble des dossiers/sous-dossiers/fichiers se trouvant apartir du dossier ou est placé le php de la fonction.

    J'avais tout bien codé comme il faut avec des glob et foreach, jusqu'a ce que je regarde la faq de free, et je remarque que (c'est tout nouveau) la fonction glob() a été désactivée :( .

    Pas cool, je prend mon courage a deux mains et je recommencer mon script mais cette fois avec un opendir, en m'aidant du tuto d'un zéro ..
    Bon, tout ce supprime correctement sauf es sous-dossiers o_O

    voici mes ereurs :

    Warning: closedir(): supplied argument is not a valid Directory resource in c:\program files\easyphp1-8\www\test_unlink.php on line 28

    Warning: rmdir(./images/bannieres): Permission denied in c:\program files\easyphp1-8\www\test_unlink.php on line 23

    Warning: closedir(): supplied argument is not a valid Directory resource in c:\program files\easyphp1-8\www\test_unlink.php on line 28

    Warning: rmdir(./images/photos/petite): Permission denied in c:\program files\easyphp1-8\www\test_unlink.php on line 23

    etc ......


    le code de la fonction php :


    function effacer($dir)
    {
    $repertoire = opendir($dir); //on définit le repertoire dans lequel on souhaite travailler

    while ($fichier = readdir($repertoire)) //on lit chaque fichier du répertoire dans la boucle
    {
    $chemin = $dir."/".$fichier; //on définit le chemin du fichier à effacer

    //si le fichier n'est pas un répertoire
    if ($fichier != ".." AND $fichier != "." AND $chemin != "./test_unlink.php" AND !is_dir($chemin))
           {
           unlink($chemin); //on efface
               //echo $dir.'       '.$chemin.'<br>';
           }
            elseif($fichier != ".." AND $fichier != "." AND $chemin != "./test_unlink.php" AND is_dir($chemin))
            {
                    //echo $dir.'       '.$chemin.'<br>';
                    effacer($chemin);
                    //if($dir!= '.')
                    //{
                            //echo 'Efface '.$chemin.'<br>';
                            rmdir($chemin);
                    //}
                   
            }       
    }
    closedir($dir);
    }
    effacer(".");


    Si vous pouviez me donner votre avis sur ce qui ne vas pas .. a mon avis c'est soit un problème de closedir qui ne ferme pas le bon dossier (étant donné que c'est une boucle, les variables de dossiers sont les mêmes :o ) soit une erreur de "je scie la branche qui est sous moi" autrement dis : "Je supprime un dossier dans lequel je me trouve avec le "opendir" ...

    Aidez moi svp !!

    Merci beaucoup d'avance ...
    swop
    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2005 à 2:57:57

      Bon voila un de mes anciens code, je sais pas trop s'il marchait :p je l'ai réadapter avec les memes noms de variables que toi


      <?php
      function effacer($dir) // Fonction qui supprime les répertoires
              {
              if($repertoire = opendir($dir))
                      {             
                      while($fichier = readdir($repertoire))
                              {
                              if($fichier! = '.' AND $fichier! = '..')
                                      {                                   
                                      if($dir == '.'){$var = '';}
                                      else{$var = $dir;}
                                     
                                      if(is_dir($var.$file))
                                              {
                                              effacer($dir.'/'.$fichier);
                                              rmdir($dir.$fichier);;
                                              }
                                      else
                                              {
                                              unlink($dir.'/'.$fichier);
                                              }
                                      }
                              }
                      return rmdir($dir);
                      } 
              else
                      {
                      return FALSE;
                      }           
              }
      ?>
      • Partager sur Facebook
      • Partager sur Twitter
        30 décembre 2005 à 9:57:32

        hum ...
        Merche toujour pas au niveau des dossiers ..

        J'ai toujour un permission denied .. j'ai essayé alors sur le net et il me met pas de message d'erreur, mais bon, il ne supprime pas les dossiers non plus :euh:

        J'ai regardé le chmod des dossier : il est en 700 ...
        Ca reste bizard tout de même ..
        • Partager sur Facebook
        • Partager sur Twitter
          30 décembre 2005 à 22:11:17

          up ...
          Svp, c'est important !! personne neut peut m'aider ?? o_O
          • Partager sur Facebook
          • Partager sur Twitter

          Fonction pour tout supprimer ....

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown