A l'aide je seche sur un tableau

A l'aide je seche sur un tableau - PHP - Programmation

Marsh Posté le 27-06-2010 à 16:44:59    

Code :
  1. $input = "je vous offre, au travers de cette musique.";
  2. echo $input.'<br/>';
  3. $tableplace2 = array(',' => '|', ';' => '|', '.' => '|','-' => '|',' ' => '|','||' => '|');
  4. foreach ($tableplace2 as $orig => $dest)
  5. {
  6. $input = str_replace($orig,$dest,$input);
  7. }
  8. $input2 = explode('|',$input);
  9. echo sizeof($input2).'<br>';
  10. echo $input2[0].'<br>';
  11. $boucle = 0;
  12. while ($boucle < sizeof($input2))
  13. {
  14. echo $boucle;
  15. echo $input2[boucle].'<br/>'; // ça ne me renvoie rien !!!
  16. $boucle = $boucle + 1;
  17. }


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

Marsh Posté le 27-06-2010 à 16:44:59   

Reply

Marsh Posté le 27-06-2010 à 16:51:43    

erwan83 a écrit :

Code :
  1. $input = "je vous offre, au travers de cette musique.";
  2. echo $input.'<br/>';
  3. $tableplace2 = array(',' => '|', ';' => '|', '.' => '|','-' => '|',' ' => '|','||' => '|');
  4. foreach ($tableplace2 as $orig => $dest)
  5. {
  6. $input = str_replace($orig,$dest,$input);
  7. }
  8. $input2 = explode('|',$input);
  9. echo sizeof($input2).'<br>';
  10. echo $input2[0].'<br>';
  11. $boucle = 0;
  12. while ($boucle < sizeof($input2))
  13. {
  14. echo $boucle;
  15. echo $input2[boucle].'<br/>'; // ça ne me renvoie rien !!!
  16. $boucle = $boucle + 1;
  17. }



 
 

Code :
  1. $input = "je vous offre, au travers de cette musique.";
  2. echo $input.'<br/>';
  3. $tableplace2 = array(',' => '|', ';' => '|', '.' => '|','-' => '|',' ' => '|','||' => '|');
  4. foreach ($tableplace2 as $orig => $dest)
  5. {
  6. $input = str_replace($orig,$dest,$input);
  7. }
  8. $input2 = explode('|',$input);
  9. echo sizeof($input2).'<br>';
  10. echo $input2[0].'<br>';
  11. $boucle = 0;
  12. while ($boucle < sizeof($input2))
  13. {
  14. echo $boucle;
  15. echo $input2[$boucle].'<br/>'; // ça ne me renvoie rien !!!
  16. $boucle = $boucle + 1;
  17. }


 
Tu avais oublié le "$" sur echo $input2[$boucle].'<br/>';


Message édité par antac le 27-06-2010 à 16:52:05
Reply

Marsh Posté le 27-06-2010 à 16:56:14    

Mais non  !!!  
Il y est pourtant !
 
Oups ! autant pour moi !
oui oui, sur boucle !!!
 
Merci !!!


Message édité par erwan83 le 27-06-2010 à 16:59:01

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

Marsh Posté le 28-06-2010 à 07:32:30    

un simple pregreplace de tous ces caratères te fait le boulot sur 2 lignes de codes :/


---------------
Blablaté par Harko
Reply

Marsh Posté le 28-06-2010 à 09:58:34    

pour info, str_replace peut prendre des tableaux dans ses 2 premiers arguments :/

Code :
  1. $input = "je vous offre, au travers de cette musique.";
  2. $tableplace2 = array(',' => '|', ';' => '|', '.' => '|','-' => '|',' ' => '|','||' => '|');
  3. $input = str_replace(array_keys($tableplace2), array_values($tableplace2), $input);


---------------
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
Reply

Marsh Posté le 29-06-2010 à 09:49:53    

rufo a écrit :

pour info, str_replace peut prendre des tableaux dans ses 2 premiers arguments :/

Code :
  1. $input = "je vous offre, au travers de cette musique.";
  2. $tableplace2 = array(',' => '|', ';' => '|', '.' => '|','-' => '|',' ' => '|','||' => '|');
  3. $input = str_replace(array_keys($tableplace2), array_values($tableplace2), $input);



 
tu veux dire que array_keys sortira la premiere valeur et array_values la deuxieme ?
si c'est le cas c'est génial !!!


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

Marsh Posté le 29-06-2010 à 09:55:57    

ben faut lire le manuel de temps en temps et comme je le dis depuis tout à l'heure, même pas besoin de passer par un tableau puisque tu remplaces toutes les valeurs par la même chose.
un simple replace depuis une regexp et c'est torché


---------------
Blablaté par Harko
Reply

Marsh Posté le 29-06-2010 à 10:42:57    

erwan83 a écrit :


 
tu veux dire que array_keys sortira la premiere valeur et array_values la deuxieme ?
si c'est le cas c'est génial !!!


 
+1 pour lire le manuel  :o  Tu verras que array_keys() fait même plus que donner les clés d'un tableau associatif. Quand tu manipules un objet (ici, un tableau), ça serait bien d'aller sur www.php.net et de voir la liste des fonctions en standard et ce qu'elles font, ça t'éviteras de réinverter la roue :/


---------------
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
Reply

Marsh Posté le 30-06-2010 à 12:33:32    

C'est quoi la finalité du truc ?

 

Elle est exhaustive ta liste de chars à remplacer ?

 

Ou tu cherches à remplacer tout ce qui n'est pas des lettres/chiffres par un pipe ?

 

Edit : en plus je vois que c'est pour faire un explode sur le pipe par la suite... donc c'est même pas un preg_replace qu'il te faut, mais un simple preg_split.

 

Edit 2 : si le but c'est de sortir un tableau contenant tous les mots d'une phrase, je pense qu'un truc de ce genre doit faire l'affaire :

 
Code :
  1. $words = preg_split('`[^\w]+`', $input);
 

Non testé ...


Message édité par Dj YeLL le 30-06-2010 à 12:39:34

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 03-07-2010 à 22:40:40    

oui sans doute mais je dois virer tout un tas de chr et de mots inutiles dans les phrases
 

Code :
  1. $tableinutile = array(1 => '|ta|','|tu|','|in|','|an|','|on|','|of|','|for|','|a|','|s|','|qu|','|l|','|j|','|n|','|t|','|m|','|le|','|la|','|les|','|un|','|une|','|du|','|des|','|de|','|en|','|qu|');


et encore, j'en oublie


Message édité par erwan83 le 03-07-2010 à 22:41:58

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

Marsh Posté le 03-07-2010 à 22:40:40   

Reply

Marsh Posté le 03-07-2010 à 23:27:33    

Ben tu fais un array_filter après ...

Code :
  1. $words = array_filter($words, 'useless_filter');
  2.  
  3. function useless_filter($str)
  4. {
  5.    return !in_array($str, array('ta','tu','in','an','on','of','for','a','s','qu','l','j','n','t','m','le','la','les','un','une','du','des','de','en','qu'));
  6. }


Message édité par Dj YeLL le 03-07-2010 à 23:27:56

---------------
Gamertag: CoteBlack YeLL
Reply

Sujets relatifs:

Leave a Replay

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