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 :

probleme de reference arrière pour supprimer les balises html


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut probleme de reference arrière pour supprimer les balises html
    premiere utilisation des references arrières, et ca passe pas !
    je veux supprimer toutes les balises de type strong,em,b,i
    certaines balises strong peuvent avoir une classe (<strong class="maclasse">)
    certaines balises sont imbriquées, genre :
    <i><strong class="maclasse">du contenu que je veux garder</strong></i>
    le contenu est assumé comme sémantiquement valide.

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #(?:<(?:b|em|strong|i)[^>]*?>)(.*?)(?:</(?:b|em|strong|i)>)#
    //probleme : du mal avec les imbriquées, il me renvoie du contenu avec une demi balise, en prenant la fin de l'imbriquée pour la fin de l'enveloppante
    du coup, je me dis qu'avec une référence arrière ca devrait passer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #(?:<(?:b|em|strong|i)[^>]*?>)([^<]*?)(?:<(/\1)>)#
    .... mais ca ne passe pas
    une idée ?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Je ne sais pas trop à quoi correspondent tes ?: mais je ne connais pas tout

    En tout cas :


    #<(b|em|strong|i)[^>]*?>([^<]*?)</\1># devrait fonctionner


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaine = preg_replace('#<(b|em|strong|i)[^>]*?>([^<]*?)</\1>#', "$2", $chaine);
    $chaine = preg_replace('#<(b|em|strong|i)[^>]*?>([^<]*?)</\1>#', "$2", $chaine);
    Il faut le faire plusieurs fois (à cause des imbrications possibles).
    Ceci dit, dans ton cas 2 appels devraient suffire car à part un gras italique ou un italique gras je ne vois pas

Discussions similaires

  1. [RegEx] Regex pour supprimer les balises <input>
    Par chris0938 dans le forum Langage
    Réponses: 4
    Dernier message: 07/06/2010, 16h07
  2. [RegEx] Supprimer les balises HTML
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2008, 16h51
  3. [RegEx] Supprimer les balises HTML
    Par hisy dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2006, 17h10
  4. Script pour enlever les balises html
    Par Scratch48 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/11/2005, 17h16

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