Administrateur PHPfrance |
3088 Messages
18 janv. 2007, 00:13
Erm, je vois. Il te faut utiliser preg_replace_callback(), mais l'inconvénient c'est que tes variables n'appartiendront pas au bon "scope" (autrement dit, $date n'est pas défini à l'intérieur d'une autre fonction). D'un autre côté, si la seule variable est $date alors tu peux replacer ta regex par quelque chose de beaucoup plus simple comme
preg_replace('!\\[\\$date\\]!isU', date('r'), $xml["titre"]);
Tu peux aussi utiliser le
modifier e mais c'est potentiellement un gros risque au niveau de la sécurité.
À n'utiliser que si tu contrôles 100% du contenu du fichier XML
preg_replace('!\\[\\$([a-z_0-9]+)\\]!isUe', '$$1', $xml["titre"]);
...où
$1 sera remplacé par le nom de la variable, ce qui donnera donc
$date qui sera ensuite évalué par PHP pour donner la date.
Sinon, tu peux aussi t'intéresser à XSLT, dès qu'on comprend comment ça marche ça rend de grands services.