Probleme de REGEX

Résolu
Signaler
Messages postés
9
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
17 février 2009
-
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
-
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

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
14
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.