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 :

Remplacer une chaîne de caractères comprise dans une balise [code] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 415
    Points : 125
    Points
    125
    Par défaut Remplacer une chaîne de caractères comprise dans une balise [code]
    Bonjour,

    je voudrais remplacer une chaîne de caractère comprise dans une balise [code]

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $a="mon [codes]test[/codes] replace";
    $a = preg_replace("#\[codes\](.+)\[/codes\]]#imsU", str_replace("test", "texte", "$1"), $a);
    echo $a;
    je voudrais obtenir "mon texte replace", mais ça ne fonctionne pas

    merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $a="mon [codes]test[/codes] replace";
    $a = preg_replace('~\[codes].+t\[/codes]~i','texte',$a);
    echo $a;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 415
    Points : 125
    Points
    125
    Par défaut
    Le pb c'est que ça ne suffit pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $a="mon [codes]test 'message'[/codes] replace";
    $a = preg_replace('~\[codes].+t\[/codes]~i','texte',$a);
    echo $a;
    dans ce cas ça ne fonctionne pas, je ne connais pas la phrase à l'avance, c'est une balise code, ce n'est pas moi qui la rempli ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Le code donné est indépendant du message entre les balises code et du message de remplacement ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $message="n'importe quel message";
    $remplacement= "remplacement quelconque";
     
    $a="mon [codes]".$message."[/codes] replace";
    $a = preg_replace('~\[codes].+\[/codes]~i',$remplacement,$a);
    echo $a;
    Je ne vois pas ou est le souci ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 415
    Points : 125
    Points
    125
    Par défaut
    si c'est pour me redonner le message que je poste, ça ne sert à rien

    par exemple

    un [codes]deux trois[/codes] quatre
    ou
    un [codes]deux trois quatre[/codes] cinq

    dans ce cas ça ne fonctionne plus si je veux remplacer "trois" par "six"

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    si c'est pour me redonner le message que je poste, ça ne sert à rien
    Si tu exprimais clairement ton besoin au départ ...

    la prochaine fois je peux tout aussi bien m'abstenir de t'apporter bénévolement mon aide ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function remplacement($matches){
        global $search, $replace;
        return str_replace ($search, $replace,$matches[1]);
    }
    $search="trois";
    $replace="three";
     
    $a="truc  [codes]deux trois quatre[/codes] bidule";
    $a = preg_replace_callback('~\[codes](.+)\[/codes]~i', 'remplacement',$a);
     
    echo $a;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 415
    Points : 125
    Points
    125
    Par défaut
    merci pour ton aide, c'est vrai que ma question n'était pas bien formulée

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/03/2014, 14h08
  2. Réponses: 4
    Dernier message: 06/07/2011, 09h35
  3. Réponses: 3
    Dernier message: 25/11/2008, 18h36
  4. Réponses: 2
    Dernier message: 08/07/2008, 11h50
  5. Réponses: 2
    Dernier message: 13/06/2008, 10h21

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