ereg_replace problème

WRInaute occasionnel
Bonjour,

J'ai un problème avec une expression régulière

je voudrais remplacer les chaines avec ereg_replace


[img0,xxxx,yyyy]

et obtenir dans \\1 \\2 et \\3 pour reconstituer une url

après img il y a un nombre entier, xxxx et yyyy sont des chaines alphanumériques de longueur variables

$chaine=ereg_replace("\[img(.*),(.*),(.*)]","parm-\\1----param-\\2-----param-\\3",$chaine);

cela fonctionne lorsqu'il y a une seule occurence à remplacer dans la chaine $chaine, mais dès qu'il y en a plusieur, ça foire complètement et il y a toute la chaine de le \\3

Si quelqu'un voit pourquoi je nage, ça me serait très utile...
 
WRInaute occasionnel
non ça va ne marche pas, en fait il faudrait avec ce code source que dans la chaine $art ce qui est entre les crochets [...] devienne la chaine "param-\\1----param-\\2-----param-\\3" avec dans le \\1 \\2 et \\3 respectivement le chiffre qui est après img et les deux chaînes test1 et test2


$art="essai [img2,test1,test2] continu [img3,youk1,youk2] suite encore";

$art=ereg_replace("\[img([^,]*),([^,]*),([^\]]*)\]","param-\\1----param-\\2-----param-\\3",$art);

?
 
WRInaute occasionnel
C'était presque ça, j'ai juste modifié la fin, merci beaucoup pour ta source, et ta réponse rapide

$art=ereg_replace("\[img([^,]*),([^,]*),([^,]*)\]","param-\\1-----------param-\\2----------param-\\3",$art);
 
Discussions similaires
Haut