Probleme de REGEX

Résolu
cs_matters Messages postés 9 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 17 février 2009 - 17 févr. 2009 à 15:49
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 17 févr. 2009 à 21:06
Salut,

J'ai un problème pour effectuer une preg_replace.

Voici mon problème :
Je suis dans une classe, où le tableau $vars est bien défini (en particulier $vars['text']).
Je fais :
$page = '[var=text]';
$page = preg_replace('#\[var=(.+)\]#iU', $this->vars['$1'], $page);
et j'ai l'erreur suivante : Notice : Undefined index: $1
alors que lorsque je met
$page = preg_replace('#\[var=(.+)\]#iU', '$1', $page);
ca marche, mais c'est pas ce que je veut faire.

Merci d'avance.

1 réponse

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
17 févr. 2009 à 21:06
Salut,

Vire donc les simple quotes :
$this->vars[$1]

En mettant des simple quotes autour de $1 tu considère ça comme une chaîne de caractère et non comme une variable. Si tu avais mis des doubles quotes, ça fonctionnerais car php aurait parsé la chaîne et remplacé $1 par sa valeur, mais c'est bête de faire des calculs pour rien.
3
Rejoignez-nous