Suppression dossier

Résolu
astuces72 Messages postés 2146 Date d'inscription   Statut Membre Dernière intervention   -  
astuces72 Messages postés 2146 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je ne parviens pas à supprimer un dossier avec serveur apache !

Le dossier est créé en php avec mkdir, et c'est bien apache qui le créer, et quand je vais voir les chmod je suis bien en 777.
j'utilise ce bout de code pour créer le dossier:

mkdir('../dossier');
chmod('../dossier', 0777);
Ceci "mkdir('../dossier',0777);" ne me donne pas 777 comme dans la doc php, mais 757, bref passons.

Et pour supprimer je fais un simple rmdir ('../dossier');

Un paramétrage à faire dans apache ?
Merci



--
:-)Pour un vieux de 47 ans, je peux encore en apprendre et vous en apprendre aussi :-D

1 réponse

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    As tu jeté un oeil à ceci : https://www.commentcamarche.net/faq/12255-warning-rmdir-directory-not-empty

    Déjà...Pense à activer l'affichage des erreurs php :
     error_reporting(E_ALL);
    

    A mettre au début de tes pages PHP.

    Ensuite,

    function deleteDir($dirPath) {
        if (! is_dir($dirPath)) {
            throw new InvalidArgumentException("$dirPath must be a directory");
        }
        if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
            $dirPath .= '/';
        }
        $files = glob($dirPath . '*', GLOB_MARK);
        foreach ($files as $file) {
            if (is_dir($file)) {
                self::deleteDir($file);
            } else {
                unlink($file);
            }
        }
        rmdir($dirPath);
    }
    

    et pour les versions php supérieurs à 5.2 tu peux utiliser:
    function deleteDir($dirPath){
     $it = new RecursiveDirectoryIterator($dirPath, RecursiveDirectoryIterator::SKIP_DOTS);
     $files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST);
     foreach($files as $file) {
         if ($file->isDir()){
             rmdir($file->getRealPath());
         } else {
             unlink($file->getRealPath());
         }
     }
     rmdir($dirPath);
    }
    


    1
    1. astuces72 Messages postés 2146 Date d'inscription   Statut Membre Dernière intervention   1 669
       
      Merci Jordan, ça marche impeccable :)
      0