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 :

$$ dans preg_replace


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 53
    Points : 44
    Points
    44
    Par défaut $$ dans preg_replace
    Bonjour,

    Je cherche à remplacer une variable texte dans un fichier php par sa vrai valeur. Je m'explique, après avoir ouvert un fichier php, je cherche le texte du type $variable; et aimerais le remplacer par resultat après avoir bien défini Je fais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/[\$]([^;]*?);/","$$1",$tampon);
    Il m'affiche le texte $variable sans l'évaluer. J'ai essayé à tout hazard $$$1 et il m'affiche $$variable. J'ai essayer ${$1} ce qui génère une erreur.

    Une solution ?

    Merci,

    Olivier

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    avec l'option e
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $text = '$variable;';
    $variable = "resultat";
     
    echo preg_replace('/[\$]([^;]*?);/e', '$$1', $text);
    //resultat
    EDIT : par contre l'expression d'une variable c'est plus ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*);
    http://www.php.net/manual/fr/languag...les.basics.php

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 53
    Points : 44
    Points
    44
    Par défaut
    Merci pour cette réponse rapide.

    Tout était dans le /e...

    /regex/e - if the replacement string is PHP code, eval() it to get teh actual replacement string

    Pour le regex, je ne suis pas un pro, mais ce que j'ai fait semble fonctionner. Je vais quand même essayer de comprendre ce bazar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*);
    Jusqu'à \x7f ça allait saut $ sans []...

    Bon je vais manger, verrais ça après.

    Merci encore.

Discussions similaires

  1. [RegEx] @ dans preg_replace
    Par arno15 dans le forum Langage
    Réponses: 4
    Dernier message: 12/10/2011, 14h14
  2. [RegEx] Encodage dans preg_replace
    Par rich25200 dans le forum Langage
    Réponses: 3
    Dernier message: 25/08/2009, 10h09
  3. [RegEx] utiliser une variable variable (dynamique) dans preg_replace
    Par thibs44 dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2007, 11h29
  4. [RegEx] Combinaisons dans preg_replace
    Par Christophe Charron dans le forum Langage
    Réponses: 4
    Dernier message: 16/09/2006, 14h30
  5. [RegEx] Preg_replace dans une page html
    Par trihanhcie dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 16h51

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