cs_matters
Messages postés9Date d'inscriptiondimanche 4 décembre 2005StatutMembreDernière intervention17 février 2009
-
17 févr. 2009 à 15:49
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDerniè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.
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 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.