Suppression de fichiers set de dossiers

Eléphant du PHP | 355 Messages

21 nov. 2005, 19:23

Bonjour à tous :wink:

Je recherche une commande php pour supprimer des fichiers et dossiers, quelqu’un saurait-il m’aider ?

Mammouth du PHP | 768 Messages

21 nov. 2005, 19:41

http://www.php.net/unlink pour les fichiers

pour les dossiers, c'est précisé dans la doc (cf page ci dessus)
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 148 Messages

21 nov. 2005, 19:50

Salut,

pour les fichiers :

<?
// effacer le fichier
 unlink("nom_du_fichier.xxx");
>

Pour effacer un dossier, utilise la fonction rmdir(), mais il faut auparavant que tous les fichiers de ce dossier aient été effacés...
 rmdir($fichier)
Voici une petite fonction récursive pour effacer un dossier, qui vérifie s'il est vide, et qui, si ce n'est pas le cas, efface d'abord tous les fichiers puis le dossier:
function effacer($fichier) {
  if (file_exists($fichier)) {
    chmod($fichier,0777);
    if (is_dir($fichier)) {
      $id_dossier = opendir($fichier); 
      while($element = readdir($id_dossier)) {
        if ($element != "." && $element != "..")
        delete($fichier."/".$element);
      }
      closedir($id_dossier);
      rmdir($fichier);
    }
    else unlink($fichier);
  }
}
Appel de la fonction :
$repertoire = "chemin_du_dossier";
effacer($repertoire);
Je suis pas super balaize, mais j'espère avoir répondu à ta question...

@ + :wink:
Et hop !

Eléphant du PHP | 355 Messages

21 nov. 2005, 19:54

Bonjour mario et merci beaucoup :wink:

S'est parfait :D

Eléphant du PHP | 355 Messages

21 nov. 2005, 19:56

Bonjour Zurg et merci beaucoup :wink:

Eléphant du PHP | 355 Messages

21 nov. 2005, 22:20

J'ai pensser à un trcu, je viens de tester ceci:

Mon fichier avec le script:
<?php 
$directories = glob("*",GLOB_ONLYDIR); 
foreach ($directories as $dir) 
{ 
   echo '<a href="', $dir, '" > ', $dir, ' </a>'; 
   echo '<a href="?action=rename&d=', $dir, '" > Renommer </a>'; 
   echo '<a href="supprim.php" > Suprimer </a><br>'; 
} 
?> 
J'ai tester juste pour supprimer:
   echo '<a href="supprim.php" > Suprimer </a><br>'; 
Voila donc quand on clique sur le lien Supprimer on appele le fichier supprim.php:
<?php 
rmdir($dir) 
?> 
Voici aitenant le message d'erreur:

Code : Tout sélectionner

Notice: Undefined variable: dir in C:\easyPHP\www\supprim.php on line 2 Warning: rmdir(): Permission denied in C:\easyPHP\www\supprim.php on line 2
Quelq'un pourait-il me dire se qui cloche ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

21 nov. 2005, 23:42

T'es une vrai machine a coder toi depuis que tu pose ici il n'y a plus que toi :lol:

pour le 1er probleme il faut passer la variable au fichier suivant par l'url:
echo '<a href="supprim.php?dir='.$dir.'" > Suprimer </a><br>'; 
ensuite dans l'autre fichier:
<?php
$dir=$_GET['dir'];
rmdir($dir)
?>
mais attention c pas tres sur en meme temps :?

Pour l'autre erreur c'est un probleme de droits sur le dossier regarde cette fonction chmod() ou alors cette fonction est peut etre desactivé chez ton hébergeur :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 355 Messages

21 nov. 2005, 23:49

Bonjour Truc et merci :wink:

Cela marche parfaitement :D

Pou le Chmod se ne sera pas la peine, enfaite cette erreur été du au fait que dir ne renvoyer pas de fichier sa a du perturber le code se qui a renvoyer cette erreur.

A propos je suis en locale avec Easy PHP.