Je veux remplacer [skill=Toto:654][/skil:654] par un texte qui est créé par la fonction gw_skills_bbcode.
Pour cela j'utilise la fonction preg_replace_callback
1 2
| $text = preg_replace_callback("/\[skill=(([A-z]+)):$uid\]/si", "gw_skills_bbcode", $text);
$text = str_replace("[/skill:$uid]", $bbcode_tpl['skill_close'], $text); |
Cela marche très bien.
Mais certains mots possèdent un point d'exclamation à la fin comme par exemple :
[skill=Tutu!:654][/skil:654]
Je débute en expression régulière. Et là je sèche. J'ai cherché des documentations, mais pas moyen...
J'ai testé :
"/\[skill=([A-z]+)!?:$uid\]/si"
"/\[skill=([A-z]+)\!?:$uid\]/si"
Mais rien ca ne marche pas.
Je ne trouve pas mon erreur... une idée ?
Partager