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 :

Problème preg_replace [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Par défaut Problème preg_replace
    Bonjour,
    J'ai suivi le manuel de php.net pour essayer de me faire un petit parser html pour mon site. Cela me permet de remplacer certaines expressions d'un fichier par le resultat d'une fonction.
    Le problème c'est que lorsque je passe un objet en parametre de l'execution de la fonction cela ne fonctionne pas. En revanche, si je passe un type primitif, cela fonctionne.

    Voici le code correct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    function parse($fichier) 
    {    
    // $var est un type primitif String
    $var = "chaine";
     
        $fd = fopen( "./tpl/".$fichier, "r");
     
        while ( !feof( $fd ) ) 
        {
            $ligne = fgets( $fd );
       echo preg_replace(
                 "/CMD_([a-zA-Z0-9]*)/e",
                 "callback('\\1','$var')",
                 $ligne);
        }
    }
     
    function callback($fonction, $var)
    {
      return $fonction($var);
    }
    En revanche si la variable $var est un objet cela ne fonctionne plus...
    Auriez vous une solution ?

    Merci d'avance.

    TOM

    ps: j'ai essayé avec preg_replace_callback, mais le problème c'est que je ne peux pas du tout passer de paramètres.

  2. #2
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Tu veux remplacer par quoi?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function parse($fichier, $var) 
    {    
        $var=serialize($var);
        $fd = fopen( "./tpl/".$fichier, "r");
     
        while ( !feof( $fd ) ) 
        {
            $ligne = fgets( $fd );
       echo preg_replace(
                 "/CMD_([a-zA-Z0-9]*)/e",
                 "callback('\\1','$var')",
                 $ligne);
        }
    }
     
    function callback($fonction, $var)
    {
      $var=unserialize($var);
      return $fonction($var);
    }
    C'est bon j'ai trouver merci quand meme Anduriel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Problème preg_replace mot exact
    Par nonoco dans le forum Langage
    Réponses: 4
    Dernier message: 24/02/2008, 19h57
  2. [RegEx] problème preg_replace et \s
    Par liberty74 dans le forum Langage
    Réponses: 1
    Dernier message: 23/07/2007, 13h45
  3. [RegEx] Problème preg_replace
    Par MagicManu dans le forum Langage
    Réponses: 2
    Dernier message: 13/02/2007, 15h33
  4. [PHP-JS] problème preg_replace <img>
    Par alexmorel dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2006, 13h21
  5. [RegEx] problème avec preg_replace
    Par carlos20 dans le forum Langage
    Réponses: 6
    Dernier message: 27/10/2005, 10h29

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