Occurence multiples dans chaine

Occurence multiples dans chaine - PHP - Programmation

Marsh Posté le 05-12-2008 à 12:51:19    

Bonjour,
 
Je me tire les cheveux.....
 
J'ai une chaine de caractère :
 

Code :
  1. $c2="d(DBE0PUE1_AXC_10XC_J_2E_1) & d(DBE0PUE1_CXC_10XC_J_2E_2) & d(DBE0PUE1_CXC_10XC_J_2E_3)";


 
Je voudrais en résultat avoir ceci :
(en gros je créé un lien avec ce qu'il y a entre parenthèse)
 
 

Code :
  1. d(<a href='toto.php?joby=DBE0PUE1_AXC_10XC_J_2E_1>DBE0PUE1_AXC_10XC_J_2E_1</a> ) & d(<a href='toto.php?joby=DBE0PUE1_CXC_10XC_J_2E_2>DBE0PUE1_CXC_10XC_J_2E_2</a> ) & d(<a href='toto.php?joby=DBE0PUE1_CXC_10XC_J_2E_3</a>DBE0PUE1_CXC_10XC_J_2E_3</a> )


 
Sachant que ma chaine peut etre du type :
 
d(DBE0PUE1_ZXC_10XC_J_2E_1)  
k(DBE0PUE1_KXC_10XC_J_2E_1) & s(DBE0PUE1_RXC_10XC_J_2E_2)
(DBE0PUE1_ZXC_10XC_J_2E_1)
 
Je sais récupérer les pattern entre parentese avec du eregi par exemple.
Mais incapable de traiter ma chaine à la volée.
 
A vot' bon coeur ;)

Reply

Marsh Posté le 05-12-2008 à 12:51:19   

Reply

Marsh Posté le 05-12-2008 à 14:08:38    

C'est pour la NASA ton truc ? [pingouino]
 
Utilise preg_replace (eregi === caca), qui permet de matcher une string comme ça et de remplacer.

Reply

Marsh Posté le 05-12-2008 à 14:15:30    

lol mais non spa pour la NASA : )
 
J'ai bien essayé ca :
 

Code :
  1. $Texte = eregi ("\((.*)\)" , "$c1" , $Resultat);
  2. print "$c2 => $Resultat[1] \n";


 
Mais ca ne me donne pas le résultat escompté....

Reply

Marsh Posté le 05-12-2008 à 14:54:57    

en gros ma regexp c'est :
 

Code :
  1. (\(.+?\))


 
Comment remplacer toutes les occurence de la ligne ?

Reply

Marsh Posté le 05-12-2008 à 15:16:18    

Comme ça :

Code :
  1. <?php
  2. $c2="d(DBE0PUE1_AXC_10XC_J_2E_1) & d(DBE0PUE1_CXC_10XC_J_2E_2) & d(DBE0PUE1_CXC_10XC_J_2E_3)";
  3.  
  4. $c2 = preg_replace('/\(([^)]*)\)/', '(<a href="toto.php?joby=$1>$1</a> )', $c2);
  5.  
  6. var_dump($c2);

Reply

Marsh Posté le 05-12-2008 à 15:28:47    

c niquel !
Enfin ca marche pas direct mais je devrais m'en sortir ;)
 
 
Ptite question , pkoi un var_dump ?

Reply

Marsh Posté le 05-12-2008 à 15:32:20    

ah nan ca marche dierect en fait, c'etait les doubles quotes qui merdaient ;)
 
Vraiment, merci ;)

Reply

Marsh Posté le 05-12-2008 à 15:33:45    

FlorentG a écrit :

Comme ça :

Code :
  1. <?php
  2. $c2="d(DBE0PUE1_AXC_10XC_J_2E_1) & d(DBE0PUE1_CXC_10XC_J_2E_2) & d(DBE0PUE1_CXC_10XC_J_2E_3)";
  3.  
  4. $c2 = preg_replace('/\(([^)]*)\)/', '(<a href="toto.php?joby=$1>$1</a> )', $c2);
  5.  
  6. var_dump($c2);



t'as pas refermé le @href [ciler]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 05-12-2008 à 15:39:07    

hornetmen a écrit :

Ptite question , pkoi un var_dump ?


Juste pour afficher le résultat.
 

masklinn a écrit :

t'as pas refermé le @href [ciler]


Bien vu [jap]

Reply

Sujets relatifs:

Leave a Replay

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