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 mauvais pattern [Fait] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut preg_replace mauvais pattern
    salut,
    c'est un truc sans doute tout bête mais j'arrive pas à formuler mon expression rationnelle correctement.
    Je voudrais enlever toutes les balises '<br>' d'une chaine.
    J'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content = preg_replace("<br>","",$content);
    mais reste '<>'.
    J'ai essayé avec des {,[,(,/et même des \. Je trouve pas la bonne solution

    merci d'avance pour le coup de pouce

  2. #2
    Expert éminent sénior

    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
    Points : 17 778
    Points
    17 778
    Par défaut
    Parce que vous avez omis le délimiteur de l'expression régulière, preg_replace utilise donc < et > comme délimiteur (puisque ces symboles peuvent l'être) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content = preg_replace("#<br>#","",$content);
    Je vous recommande de lire le tutoriel d'initiation aux expressions régulières.


    Julp.

  3. #3
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    merci pour la réponse.
    J'avais également essayé mais sans succès. Mes balises <br> ne sont pas effacées.
    je vais voir le tutoriel.

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai testé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content = preg_replace("^<(br|BR|bR|Br)>$","",$content);
    et le test est concluant. Désolé mais je ne sais plus si preg_replace est case sensitive ou pas.

  5. #5
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    j'ai un message d'erreur :
    Warning: preg_replace() [function.preg-replace]: No ending delimiter '^' found in C:\wamp\www\codes\functions\getUpdateCode2.php on line 11
    deleted

  6. #6
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    et avec str_replace ?

    Finalement, les expressions regulieres ne se justifient pas, vu que la chaine est fixe... Par contre, je ne sais pas si ca prend en compte la distinction majuscules/minuscules.

    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  7. #7
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    bon j'avais dit au départ, c'est tout bête mais là ça dépasse tout...
    en fait ça ne marchait pas parce que j'exécute l'expression régulière après un htmlentities, donc le <br> est en fait "&lt;br&gt;"
    ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content = preg_replace("#&lt;br&gt;#","",$content);
    ça marche !
    Merci beaucoup pour votre aide.

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

Discussions similaires

  1. [RegEx] preg_replace mauvais resultat
    Par omelhor dans le forum Langage
    Réponses: 4
    Dernier message: 20/01/2012, 18h34
  2. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  3. [RegEx] Pattern preg_replace pour ajouter des strong's
    Par juJuv51 dans le forum Langage
    Réponses: 1
    Dernier message: 14/11/2007, 16h00
  4. [RegEx] preg_replace, flag e, patterne existe ou pas
    Par Hacken dans le forum Langage
    Réponses: 11
    Dernier message: 29/10/2007, 21h37
  5. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 16h14

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