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 :

str_replace qui remplace pas correctement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Par défaut str_replace qui remplace pas correctement
    Bonsoir tout le monde,
    sachant que les parenthèses sont capturantes, pourriez-vous m'indiquer pourquoi mon code est mal interprété ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $variable = str_replace('[citation auteur=(.+)]','Citation par $1<div class="citation">',$variable);
    $variable = str_replace('[/citation]','</div>',$variable);
    A l'affichage, je vois ceci :
    [citation auteur=beji15]message

    Alors que j'espèrais voir ceci :
    Citation Envoyé par beji15
    message
    Je vous remercie de votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonsoir,
    vous êtes sûr d'utiliser la bonne fonction?

    Cordialement,
    DaRiaN.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Par défaut
    Ben...je suppose
    mais quelle autre fonction me proposez - vous ?

  4. #4
    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
    Vous n'utilisez pas la bonne fonction : str_replace fait un remplacement exact et non par rapport à un motif. Dans le deuxième cas, il faut se tourner vers les fonctions de l'extension PCRE (preg_*, les fonctions POSIX - ereg* - étant dépréciées) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $variable = preg_replace('~\[citation auteur=(.+)\]~U', 'Citation par \1<div class="citation">', $variable);
    $variable = str_replace('[/citation]', '</div>', $variable);
    Qu'il est possible d'écrire aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable = preg_replace('~\[citation auteur=(.+)\](.+)\[/citation\]~sU', 'Citation par \1<div class="citation">\2</div>', $variable);

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Par défaut
    Merci julp, c'est exactement ce que je cherchais.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Désolé, je partais donc pas moyen d'expliquer clairement la démarche.

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

Discussions similaires

  1. Condition qui fonction pas correctement
    Par letoulouzin31 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 16/11/2009, 15h04
  2. un REPLACE qui remplace pas
    Par evevev dans le forum Requêtes
    Réponses: 12
    Dernier message: 08/07/2009, 11h55
  3. le body.replace qui remplace pas
    Par zooffy dans le forum ASP.NET
    Réponses: 16
    Dernier message: 18/01/2008, 13h57
  4. Réponses: 1
    Dernier message: 21/11/2006, 16h53
  5. [RegEx] str_replace qui veut pas replacer
    Par lamoufle dans le forum Langage
    Réponses: 5
    Dernier message: 13/09/2005, 12h37

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