[RESOLU] vider plusieur sous dossier

vider plusieur sous dossier [RESOLU] - PHP - Programmation

Marsh Posté le 06-07-2006 à 15:39:56    

bonjour, dans un dossier qui s'apel photo jai 26 dosier qui sapel par 1 lettre de l'alphabet. Je souheterais une fonctin php pour les vider tous d'un cout.
 
Je propose ceci  
 

Code :
  1. <?
  2. $dir="C:/www/photo/f";
  3.    if(!$dh = @opendir($dir)) return;
  4.    while (($obj = readdir($dh))) {
  5.     if($obj=='.' || $obj=='..') continue;
  6.     if (!@unlink($dir.'/'.$obj)) RemoveDir($dir.'/'.$obj);
  7.    }
  8.    @closedir($dh); @rmdir($dir);
  9. ?>


Cela ne m'efface que le dossier f. alor j'ai pensé faire un tableau mais sa ne marche pas sur ma boucle for
 

Code :
  1. <?
  2. $arr = array(1 => "a", 2 => "b", 3 => "c", 4 => "d", 5 => "e", 6 => "f", 7 => "g", 8 => "h", 9 => "i", 10 => "j", 11 => "k", 12 => "l", 13 => "m", 14 => "n", 15 => "o", 16 => "p", 17 => "q", 18 => "r", 19 => "s", 20 => "t", 21 => "u", 22 => "v", 23 => "w", 24 => "x", 25 => "y", 26 => "z" );
  3. for ($i=$arr[1]; $i<$arr[26]; $i++){
  4. $dir="C:/www/photo/".arr[i];
  5.    if(!$dh = @opendir($dir)) return;
  6.    while (($obj = readdir($dh))) {
  7.     if($obj=='.' || $obj=='..') continue;
  8.     if (!@unlink($dir.'/'.$obj)) RemoveDir($dir.'/'.$obj);
  9.    }
  10.    @closedir($dh); @rmdir($dir);
  11. }
  12. ?>


 
Notice: Use of undefined constant i - assumed 'i' in c:\www\eff.php on line 7
 
Notice: Undefined index: i in c:\www\eff.php on line 7
 
Fatal error: Call to undefined function: removedir() in c:\www\eff.php on line 12
 
Merci d'avance


Message édité par mule_panda le 06-07-2006 à 16:32:28
Reply

Marsh Posté le 06-07-2006 à 15:39:56   

Reply

Marsh Posté le 06-07-2006 à 15:46:52    

c'est pas i mais $i

Reply

Marsh Posté le 06-07-2006 à 16:01:32    

Code :
  1. <?
  2. $arr = array(1 => "a", 2 => "b", 3 => "c", 4 => "d", 5 => "e", 6 => "f", 7 => "g", 8 => "h", 9 => "i", 10 => "j", 11 => "k", 12 => "l", 13 => "m", 14 => "n", 15 => "o", 16 => "p", 17 => "q", 18 => "r", 19 => "s", 20 => "t", 21 => "u", 22 => "v", 23 => "w", 24 => "x", 25 => "y", 26 => "z" );
  3. for ($i=$arr[1]; $i<$arr[26]; $i++){ 
  4. $dir="C:/www/photo/".$arr[$i];
  5.    if(!$dh = @opendir($dir)) return;
  6.    while (($obj = readdir($dh))) {
  7.     if($obj=='.' || $obj=='..') continue;
  8.     if (!@unlink($dir.'/'.$obj)) RemoveDir($dir.'/'.$obj);
  9.    }
  10.    @closedir($dh); @rmdir($dir);
  11. }
  12. ?>


 
J'ai rajoutez les $ a la ligne 6 =" $dir="C:/www/photo/".arr[i]; "
mais  
 
Notice: Undefined index: a in c:\www\eff.php on line 7
 
Fatal error: Call to undefined function: removedir() in c:\www\eff.php on line 12


Message édité par mule_panda le 06-07-2006 à 16:02:06
Reply

Marsh Posté le 06-07-2006 à 16:04:33    

Code :
  1. for ($i=1; $i<=26; $i++)


 
$i et un indice que tu incrémentes or avant tu avais initialisé $i à 'a' donc essaie d'ajouter +1 à a ça marche pas super !
 
Et puis removedir n'existe pas c'est rmdir (enfin en tout cas dans le code ou tu l'as repiqué il devit y avoir une fonction removedir mais c'est pas ton cas là)


Message édité par guitou12 le 06-07-2006 à 16:06:51
Reply

Marsh Posté le 06-07-2006 à 16:12:38    

Merci sa marche  :jap: il fallait aussi enlevé la fin du code qui supprimé les dossiers , il me reste une question
 

Code :
  1. <?
  2. $arr = array(1 => "a", 2 => "b", 3 => "c", 4 => "d", 5 => "e", 6 => "f", 7 => "g", 8 => "h", 9 => "i", 10 => "j", 11 => "k", 12 => "l", 13 => "m", 14 => "n", 15 => "o", 16 => "p", 17 => "q", 18 => "r", 19 => "s", 20 => "t", 21 => "u", 22 => "v", 23 => "w", 24 => "x", 25 => "y", 26 => "z" );
  3. for ($i=1; $i<26; $i++){ 
  4. $dir="C:/www/photo/".$arr[$i];
  5. echo $dir;
  6.    if(!$dh = @opendir($dir)) return;
  7.    while (($obj = readdir($dh))) {
  8.     if($obj=='.' || $obj=='..') continue;
  9.     if (!@unlink($dir.'/'.$obj)) unlink($dir.'/'.$obj);
  10.    }
  11. }
  12. ?>


 
à la ligne 14 si on met  if (!@unlink($dir.'/'.$obj)) unlink($dir.'/'.$obj); ou  if (!@unlink($dir.'/'.$obj)) RemoveDir($dir.'/'.$obj); cela change quoi???

Reply

Marsh Posté le 06-07-2006 à 16:25:06    

On t'a dit que ce n'était pas removedir mais rmdir !
 
http://www.php.net/rmdir
http://www.php.net/unlink
 
Cherche un peu coco

Reply

Marsh Posté le 06-07-2006 à 16:26:25    

avec ca

Code :
  1. for ($i=1; $i<26; $i++){

tu ne passeras jamais dans la derniére case de ton tableau
 
Quand à ta question : ben tu fais pas appel aux mêmes fonctions donc forcément c'est différent  :sol:

Reply

Marsh Posté le 06-07-2006 à 16:32:05    

dsl jaurais du cherché moi même, toute mes excuses, et si aprés des test la fonction passe bien par la ligne a. MErci de votre aide et pour votre rapidité a repondre  :jap:

Reply

Marsh Posté le 06-07-2006 à 16:36:36    

Pas de problème ;)

Reply

Marsh Posté le 06-07-2006 à 16:37:19    

guitou12 a écrit :

avec ca

Code :
  1. for ($i=1; $i<26; $i++){

tu ne passeras jamais dans la dernière case de ton tableau
 
Quand à ta question : ben tu fais pas appel aux mêmes fonctions donc forcément c'est différent  :sol:


 
Relis au dessus

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed