Expression reguliéres
Posté : 27 mai 2010, 11:53
Bonjour tout le monde 
Voila j'ai un probleme je souhaite remplacer du bbcode dans une chaine par l'equivalent html.
Pour cela j'utilise les expressions régulières mais j'ai un petit soucis en fait j'ai un texte :
bla bla bla bla [color=#cccccc]transmettre [/color]bla bla [color=#ffffff]tout [/color]au long de leur [color=#ff6600] bla bla [/color]sur le [color=#ff0000]terrain[/color].
et donc je souhaite remplacer par exemple [color=#cccccc]transmettre [/color] par <span color='#cccccc'> transmettre </span>
J'ai fait ce code :
[code]/* Je construis l'expression regulière*/
$exp_reg="\[color=#([0-9a-zA-Z]{1,6})\](.*)\[/color\]";
// Remplacement
$txt=eregi_replace($exp_reg,"<span color='#\\1'>\\2</span>",$txt);[/code]
Le soucis est que cela remplace bien le premier color mais cela met le </span> a la fin de tout le texte et donc ne remplace pas tout les autre color.
Voila en esperant avoir ete assez clair.
Merci de votre aide.
@++
ps:j'ai du désactiver le bbcode dans le message
Voila j'ai un probleme je souhaite remplacer du bbcode dans une chaine par l'equivalent html.
Pour cela j'utilise les expressions régulières mais j'ai un petit soucis en fait j'ai un texte :
bla bla bla bla [color=#cccccc]transmettre [/color]bla bla [color=#ffffff]tout [/color]au long de leur [color=#ff6600] bla bla [/color]sur le [color=#ff0000]terrain[/color].
et donc je souhaite remplacer par exemple [color=#cccccc]transmettre [/color] par <span color='#cccccc'> transmettre </span>
J'ai fait ce code :
[code]/* Je construis l'expression regulière*/
$exp_reg="\[color=#([0-9a-zA-Z]{1,6})\](.*)\[/color\]";
// Remplacement
$txt=eregi_replace($exp_reg,"<span color='#\\1'>\\2</span>",$txt);[/code]
Le soucis est que cela remplace bien le premier color mais cela met le </span> a la fin de tout le texte et donc ne remplace pas tout les autre color.
Voila en esperant avoir ete assez clair.
Merci de votre aide.
@++
ps:j'ai du désactiver le bbcode dans le message