Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2991 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP Pb de sortie de boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP Pb de sortie de boucle

n°2004112
erwan83
Du Shift DEL tu te méfieras !
Posté le 23-06-2010 à 13:07:52  profilanswer
 

voici mon code :
Je cherche dans toute une tripotée de fichiers de 3 lettres
Si les 3 lettres sont dans mon string input, ça doit me retourner LE PREMIER fichier et SEULEMENT celui ci
Or, ça m'en sort bien de trop
Donc, ayant entendu parler de la commande break, je me demande comment sortir de cette super boucle à la première occurrence trouvée...
 

Code :
  1. <?php
  2. $input = 'Je me promenais avec ma grand mere';
  3. $input = strtolower($input);
  4. $tableau1 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  5. $tableau2 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  6. $tableau3 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  7. foreach($tableau1 as $lettre1)
  8. {
  9. foreach($tableau2 as $lettre2)
  10.  {
  11.  foreach($tableau3 as $lettre3)
  12.   {
  13.   $ind = $lettre1.$lettre2.$lettre3;
  14.   if (stristr($input,$ind) !== FALSE)
  15.    {
  16.    echo 'INDIC_'.strtoupper($ind).'.IND';
  17.    break;
  18.    }
  19.   }
  20.  }
  21. }
  22. ?>


---------------
http://www.ypikay.com
mood
Publicité
Posté le 23-06-2010 à 13:07:52  profilanswer
 

n°2004119
SICKofitAL​L
misanthrope
Posté le 23-06-2010 à 13:44:50  profilanswer
 

Pourquoi ne pas mettre le tout dans une fonction, et faire un return du texte que tu fais en echo pour quitter les boucles  ?


---------------
We deserve everything that's coming...
n°2004120
erwan83
Du Shift DEL tu te méfieras !
Posté le 23-06-2010 à 13:49:47  profilanswer
 

ben je suis pas tres pote avec les fonctions en php :??:  
je pourrais mettre un compteur et ne garder que le premier resultat à la limite mais ça me fait ch... de devoir scanner la boucle jusqu'à la fin.


---------------
http://www.ypikay.com
n°2004121
erwan83
Du Shift DEL tu te méfieras !
Posté le 23-06-2010 à 13:55:20  profilanswer
 

Bon j'ai trouvé :
 

Code :
  1. <?php
  2. $input = 'Je me promenais avec ma grand mere';
  3. $input = strtolower($input);
  4. $tableau1 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  5. $tableau2 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  6. $tableau3 = array(1 => 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  7. $trouve = 'ko';
  8. unset($trouve);
  9. foreach($tableau1 as $lettre1)
  10. {
  11. foreach($tableau2 as $lettre2)
  12.  {
  13.  foreach($tableau3 as $lettre3)
  14.   {
  15.   $ind = $lettre1.$lettre2.$lettre3;
  16.   if (stristr($input,$ind) !== FALSE)
  17.    {
  18.    echo 'INDIC_'.strtoupper($ind).'.IND';
  19.    $trouve = 'ok';
  20.    break;
  21.    }
  22.   if (isset($trouve)){break;}
  23.   }
  24.  if (isset($trouve)){break;}
  25.  }
  26. if (isset($trouve)){break;}
  27. }
  28. ?>


---------------
http://www.ypikay.com
n°2004122
SICKofitAL​L
misanthrope
Posté le 23-06-2010 à 13:57:57  profilanswer
 

On est d'accord que lorsque stristr ($input, $ind) est vrai, tu veux arreter les itérations pas vrai ?

Code :
  1. <?php
  2. function trouve ($phrase)
  3. {
  4. $tableau1 = $tableau2 = $tableau3 = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
  5.  
  6. foreach ($tableau1 as $lettre1)
  7. {
  8. foreach ($tableau2 as $lettre2)
  9. {
  10. foreach ($tableau3 as $lettre3)
  11.  {
  12.  $ind = $lettre1 . $lettre2 . $lettre3;
  13.  if (stristr ($phrase, $ind) !== false)
  14.   {
  15.     return 'INDIC_' . strtoupper ($ind) . '.IND';
  16.   }
  17.  }
  18. }
  19. }
  20. return false;
  21. }
  22.  
  23. $input = 'Je me promenais avec ma grand mere';
  24. $input = strtolower ($input);
  25.  
  26. $r = trouve ($input);
  27. if ($r !== false) {
  28.  echo $r;
  29. }
  30. ?>


 
[:_edit]
ah ben trop tard [:grilled]


Message édité par SICKofitALL le 23-06-2010 à 13:58:25

---------------
We deserve everything that's coming...
n°2004123
stealth35
Posté le 23-06-2010 à 13:59:37  profilanswer
 

il fait peur ton truc, j'ai pas trop compris le coup des 3 lettres et des fichiers,
si ta ta chaine : Je me promenais avec ma grand mere
et que j'ai un fichier nommer   nai.txt   je le prend et c'est finis ?

 

la ton code il va juste chercher 3 lettres qui se suivent

Message cité 1 fois
Message édité par stealth35 le 23-06-2010 à 14:08:03
n°2004143
erwan83
Du Shift DEL tu te méfieras !
Posté le 23-06-2010 à 14:22:19  profilanswer
 

oui parce que en fait j'ai 26 * 26 * 26 index differents, chaque index contient des phrases qui contiennent:
AAA
AAB
AAC
...


---------------
http://www.ypikay.com
n°2004145
erwan83
Du Shift DEL tu te méfieras !
Posté le 23-06-2010 à 14:24:11  profilanswer
 

mais merci tout de même à SICKofitALL
c'est vrai que j'apréhende tout le temps les fonctions sous PHP


---------------
http://www.ypikay.com
n°2004147
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 23-06-2010 à 14:25:10  profilanswer
 

et pourquoi pas un glob('indic_'.$input.'*.*') ?


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2004177
jeff@be
Posté le 23-06-2010 à 15:31:14  profilanswer
 

sinon, pour revenir au problème initial, un simple  
 

Code :
  1. break 3;


 
en ligne 21 permettait de sortir des trois boucles d'un coup

mood
Publicité
Posté le 23-06-2010 à 15:31:14  profilanswer
 

n°2004357
rufo
Pas me confondre avec Lycos!
Posté le 24-06-2010 à 09:57:20  profilanswer
 

c'est ça, faut mettre break 3;


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2004364
erwan83
Du Shift DEL tu te méfieras !
Posté le 24-06-2010 à 10:11:42  profilanswer
 

glob existe aussi en php ?
putain de putain...

 

J'ai crasché le serveur (soft) et la base de données....
Je savais pourtant bien que faire des SHIFT SUPPR à 4h du matin c'est dangereux !
Entrain de ressortir une vieille copie de sauvegarde...
Scrogneugneu


Message édité par erwan83 le 24-06-2010 à 10:21:34

---------------
http://www.ypikay.com
n°2004365
stealth35
Posté le 24-06-2010 à 10:15:09  profilanswer
 

oui depuis longtemp glob


Message édité par stealth35 le 24-06-2010 à 10:15:24
n°2004910
erwan83
Du Shift DEL tu te méfieras !
Posté le 26-06-2010 à 01:58:32  profilanswer
 

break 3 ! trop cool ça
merci les gens !


---------------
http://www.ypikay.com
n°2004926
gatsu35
Blablaté par Harko
Posté le 26-06-2010 à 09:52:26  profilanswer
 

ya pas à dire le PHP est vraiment un langage qui permet les pires lignes de code


---------------
Blablaté par Harko
n°2005009
erwan83
Du Shift DEL tu te méfieras !
Posté le 27-06-2010 à 00:25:16  profilanswer
 

stealth35 a écrit :

il fait peur ton truc, j'ai pas trop compris le coup des 3 lettres et des fichiers,  
si ta ta chaine : Je me promenais avec ma grand mere
et que j'ai un fichier nommer   nai.txt   je le prend et c'est finis ?
 
la ton code il va juste chercher 3 lettres qui se suivent


 
j'explique :
voici un extrait du fichier INDIC_ZZO.IND :
 

Code :
  1. Annuaire wozzor
  2. Pole Intermezzo
  3. Le carburant vert de Bernard Stroiazzo
  4. Bernard Stroiazzo
  5. Bernard Stroiazzo : Biofuel Systems produira l'energie de demain
  6. Exposition CÉDÉ et Pascal TONEGUZZO
  7. Eros Ramazzotti
  8. Ange Pozzo di Borgo
  9. NiceToFeedYou - Copyright Ange Pozzo di Borgo - 2009. Icones 2.0
  10. Buzzometre : Faut-il gerer sa e-reputation (.)
  11. MEZZO DI PASTA : Toucher de nouveaux consommateurs
  12. MEZZO ACADEMY : Reflexion et creation d'une plate-forme d'E-learning



---------------
http://www.ypikay.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP Pb de sortie de boucle

 

Sujets relatifs
echo apres une image PHP ne marche pas !!!!Pb Latest Post Jquery
Petite image déco en arrière-plan -> positionnement ?Pb hero slide jquery images
Faire de statistique sur une BD MYSQL en PHPPYTHON PHP BDD : Gros problème d'encodage
PHP & MySQL : date_format()[PHP] try catch imbriqués.
Problème code PHP insertion données form dans DBProblème d'utilisation de DSN avec socket (PHP &PEAR)
Plus de sujets relatifs à : PHP Pb de sortie de boucle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR