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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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