Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2007, 23h16   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 1
Points : 0
Points : 0
Par défaut Variable dynamique dans une Regexp

Bonjour,

Je me tourne vers vous en raison d'un problème que je ne parvient pas à résoudre depuis deux jours.

En quelques mots :

Mon programmes PHP crée des variables dynamiques en fonction d'un ID dans la base de donnée :

$c1 = "valeur"
$c2
...
$c75 = 15;
...
$c127

Ces variables peuvent être exploité par des utilisateurs qui peuvent les appeler dans des formulaire sous cette forme :

{c75} + 10.

{c75} définit la variable. Cependant, il doit être récupéré pour appeler la variable variable. J'utilise alors un regexp :

Code :
$return = preg_replace("#\{(\w+)\}#", ${'$1'}, $return);
C'est là que ça cloche car l'expression ne comprend pas ${'$1'}. J'ai essayer avec preg_replace_callback, sans succes. J'ai aussi tenté de le faire avec un array : $c['id'], puis de remplacer ${'$1'} par $c['$1'], mais ça ne fonctionne pas nom plus.

Donc comment appeler une variable dynamique dans une Regexp ? merci d'avance.
therebirthed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2007, 23h33   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Le second paramètre de la fonction preg_replace (remplacement) ne sera pas évalué à chaque correspondance. Votre solution serait en effet d'utiliser la fonction preg_replace_callback or votre fonction de rappel, pour avoir accès aux variables du contexte principal (hors d'elle-même), doit utiliser le tableau $GLOBALS pour faire référence à celles-ci.

Cette discussion antérieure, preg_replace, flag e, patterne existe ou pas, se rapproche de votre demande.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h44.


 
 
 
 
Partenaires

Hébergement Web