IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable dynamique dans une Regexp


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 1
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    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.

Discussions similaires

  1. [XL-2007] Variable dynamique dans une fonction recherche
    Par Bulveye dans le forum Excel
    Réponses: 6
    Dernier message: 11/07/2012, 16h30
  2. Variables dynamiques dans une fonction
    Par NiGHtyWolf dans le forum Langage
    Réponses: 1
    Dernier message: 31/01/2010, 14h38
  3. [Dates] injecter une variable dynamique dans une requête
    Par omar071286 dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2008, 09h51
  4. nombre des variables dynamique dans une fonction
    Par Abdelkaoui dans le forum C
    Réponses: 10
    Dernier message: 29/02/2008, 15h37
  5. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo