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 :

preg_replace et fonction [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Par défaut preg_replace et fonction
    Bonjour à tous ,

    Je viens vous expliquer mon soucis avec la fonction preg_replace , à l'intérieur de laquelle je voudrais exécuter une fonction date() basique afin de convertir un temps linux dans le formatage souhaité.

    J'ai vu 2-3 exemple avec preg_replace_callback mais j'avoue , je ne suis pas arrivé à saisir l'emploi de cette fonction.

    Alors je vous montre à koi ressemble ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $search= array (
    '/Blabla(.*?)blabla(.*?)/is',
    '/Blabla2(.*?)blabla2(.*?)date=(.*?)blabla/is' 
    );
    $replace=array (
    '<blabla>$1<blabla>',
    '<blabla2>$1<blabla2>$2 le :'.date("l M dS, Y, H:i:s",'$3').'<blabla>'
    );
     
    $message= preg_replace ($search,$replace,$message);
    Bon , il s'agit toutefois d'une fonction allégée de la vrai , mais ce qui m'intéresse c'est surtout de pouvoir modifier la valeur avec la fonction date();
    qui n'apparait que dans une ligne.

    Je vous remercie d'avance
    Bon weekend à tous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Par défaut
    Bonjour

    Il est nécessaire d'utiliser le modificateur /e et attention à la protection des caractères :
    e (PREG_REPLACE_EVAL)
    Avec cette option, preg_replace() effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l'évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche. Les guillemets simples, les guillemets doubles, les antislashs et les caractères NULL sont protégés avec des antislashs (\) dans les références arrières substituées.

    Seule preg_replace() utilise cette option. Elle est ignorée par les autres.

    http://fr.php.net/manual/fr/referenc....modifiers.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $message="blabla UN blabla DEUX
    blabla2 UN blabla2 DEUX date=2008-07-03 blabla2";
     
    $search= array (
    '/Blabla (.*?) blabla (.*?)/is',
    '/Blabla2 (.*?) blabla2 (.*?) date=(.*?) blabla2/eis' 
    );
    $replace=array (
    '<blabla>$1<blabla>',
    "'<blabla2>$1<blabla2>$2 le :'.date('l M dS, Y',strtotime('$3')).'<blabla>'"
    );
     
    $message=preg_replace($search,$replace,$message);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Par défaut
    Super merci , j'avais déjà trouvé une autre solution en utilisant un callback.
    Mais ta solution semble plus simple, je te remercie pour ta réponse

    Bonne journée

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

Discussions similaires

  1. [RegEx] preg_replace et fonction intégrée, BBCode
    Par yanice dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2008, 10h27
  2. [RegEx] problème sur la fonction preg_replace pour formatage
    Par medkyl dans le forum Langage
    Réponses: 4
    Dernier message: 06/02/2008, 17h37
  3. [RegEx] PB délimiteur dans la fonction "preg_replace"
    Par tiliut dans le forum Langage
    Réponses: 3
    Dernier message: 02/08/2007, 16h42
  4. [RegEx] Problème de fonction preg_replace
    Par alexmorel dans le forum Langage
    Réponses: 3
    Dernier message: 25/09/2006, 17h48
  5. Problème fonction preg_replace
    Par alexmorel dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2006, 08h03

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