Bonjour à tous,
ceci est mon premier post et le titre est déjà pas très clair, désolé !
Le problème que je rencontre est le suivant : je cherche à convertir une chaîne de type "blablabla [exp1.truc] blablabla" en "blablabla $var['exp1.truc'] blablabla", où la variable $var s'affiche directement (par exemple "blablabla blo blablabla" si $var['exp1.truc']=="blo").
J'ai essayé plusieurs variantes de ce genre :
$texte = preg_replace('#\[((exp1|exp2|exp3)\.[a-zA-Z0-9]+)\]#isU', $var['$1'], $texte);
$texte = preg_replace('#\[((exp1|exp2|exp3)\.[a-zA-Z0-9]+)\]#isU', $var['"$1"'], $texte); /*( " dans ' )*/
$texte = preg_replace('#\[((exp1|exp2|exp3)\.[a-zA-Z0-9]+)\]#isU', $var["'$1'"], $texte); /*( ' dans " )*/
$texte = preg_replace('#\[((exp1|exp2|exp3)\.[a-zA-Z0-9]+)\]#isU', $var['"'.'$1'.'"'], $texte);
...et peut-être d'autres que j'ai oubliées, mais à chaque fois en reprenant l'exemple ça ne m'affiche que "blablabla blablabla", même si $var[...] est bien renseigné.
J'espère qu'avec mon explication et mes exemples vous voyez à peu près ce que je souhaite obtenir, c'est pas simple à expliquer ^^
Toutes les recherches que j'ai faites sur le net en rapport avec des variables et des regexp m'ont menées à des problèmes liés aux variables dans l'expression même, et non dans le remplacement.
Est-ce que quelqu'un a déjà rencontré ce cas de figure et peut m'expliquer comment il s'en est sorti ?
Merci d'avance !