IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Boucle While qui ne s'arrete pas [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 36
    Points
    36
    Par défaut Boucle While qui ne s'arrete pas
    Bonjour,

    J'ai une boucle While qui boucle autant de fois qu'elle trouve de fichier dans un dossier.
    Seulement, dans mon test, j'ai un fichier mais elle boucle plusieurs fois et du oup j'ai des erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    //chmod ($dossier_en_cours, 0777);
    if(@mkdir ($dossier_en_cours,0777,true)) { 
    }
     
    $dh = opendir($rep);
    if ($dh) {
    	/*-----------------------------------------*/
    	// On parcoure chaque fichier du dossier
    	/*-----------------------------------------*/
    	while (($file = readdir($dh))) {
    		//Test si le fichier est à exploiter ou pas
     
    		if($file!="." && $file!=".." && $file!="archives")
    		$chemin_origine="fichiers/".$file;
    		$chemin_dest="fichiers/archives/".$nom_dossier_en_cours."/".$file;
    		echo "Déplacement de $chemin_origine<br />";
    		echo "Déplacement de $chemin_dest<br />";
    		rename($chemin_origine,$chemin_dest);		
    	}
    	closedir($dh);
    }
    et voici les erreurs que j'ai en ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Traitement des fichiers....
    Déplacement de fichiers/toto.zip
    Déplacement de fichiers/archives/2011_11_17_17_08/toto.zip
    Déplacement de fichiers/toto.zip
    Déplacement de fichiers/archives/2011_11_17_17_08/archives
     
    Warning: rename(fichiers/toto.zip,fichiers/archives/2011_11_17_17_08/archives) [function.rename]: No such file or directory in /home/wwwlogit/public_html/dev/templates/pays_de_gex/sitra/importdetail.php on line 1603
    Déplacement de fichiers/toto.zip
    Déplacement de fichiers/archives/2011_11_17_17_08/.
     
    Warning: rename(fichiers/toto.zip,fichiers/archives/2011_11_17_17_08/.) [function.rename]: Device or resource busy in /home/wwwlogit/public_html/dev/templates/pays_de_gex/sitra/importdetail.php on line 1603
    Déplacement de fichiers/toto.zip
    Déplacement de fichiers/archives/2011_11_17_17_08/..
     
    Warning: rename(fichiers/toto.zip,fichiers/archives/2011_11_17_17_08/..) [function.rename]: Device or resource busy in /home/wwwlogit/public_html/dev/templates/pays_de_gex/sitra/importdetail.php on line 1603
    Je ne comprends vraiment pas ou si situe mon erreur, donc si quelqu'un pouvait me donner une piste, ça m'aidrait beaucoup. Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    fait un scandir pour un FilesystemIterator plutôt

  3. #3
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    Dans ton code, je pense que tu as oublié des accolades autour du "if" dans la boucle. Je pense que tu voudrais faire cela plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if($file!="." && $file!=".." && $file!="archives") {
    	$chemin_origine="fichiers/".$file;
    	$chemin_dest="fichiers/archives/".$nom_dossier_en_cours."/".$file;
    	echo "Déplacement de $chemin_origine<br />";
    	echo "Déplacement de $chemin_dest<br />";
    	rename($chemin_origine,$chemin_dest);
    }
    Tu trouveras des exemples qui ressemblent à ce que tu veux faire ici :
    php.net : fonction readdir

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Merci Climoo, c'est effectivement beaucoup mieux comme ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TThread] while qui ne s'arrete pas
    Par Bigmlb dans le forum C++Builder
    Réponses: 3
    Dernier message: 09/06/2014, 15h02
  2. Condition while qui ne s'arrete pas
    Par Drone dans le forum VBA Access
    Réponses: 5
    Dernier message: 16/05/2010, 19h48
  3. boucle while qui ne s'arrete pas à la lecture d'un zero
    Par malikoo dans le forum Général Python
    Réponses: 14
    Dernier message: 04/07/2007, 10h48
  4. Boucle qui ne s'arrete pas
    Par pierrot67 dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/03/2007, 10h19
  5. [Tableaux] boucle while qui ne boucle pas comme je veux
    Par oceane751 dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 00h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo