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 :

supprimer certaines balises HTML [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 17
    Points
    17
    Par défaut supprimer certaines balises HTML
    Bonjour,

    je dois enlever des balises "<p>" dans des "<td>" à l'aide des expressions regulieres, sachant que entre "p" et "td" il y a des espaces, retours à la ligne ...

    par exemple :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td colspan=2 valign=top>
      <p>toto</p>
    </td>
    doit devenir
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td colspan=2 valign=top>
    toto
    </td>
    j'ai essayé en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $text = preg_replace( '/\<td(.*)\>([\040\r\n\t])*\<p\>(.*)\<\/p\>([\040\r\t])*\<\/td\>/is', '<td>$2</td>', $text );
    mais cela ne passe pas, quelqu'un peut m'aider?

    Merci.

  2. #2
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Si les <p> sont dans une chaîne qui ne comporte que les '<td>..</td>' alors on peut simplement enlever ces <p> avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $r = '~<p>|</p>~i';
    preg_replace($r, '', $str);
    En revanche, si la chaîne contient potentiellement d'autres <p> (avant le <table> par exemple) qui doivent donc être gardés, ceci sera plus adapté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $r = '~(?=<td[^>]*>)(.*?)<p>(.*?)</p>~is';
    preg_replace($r, '\1\2', $s);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    merci cela marche parfaitement!

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

Discussions similaires

  1. [TinyMCE] Comment supprimer les balises html
    Par Magjjy dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 10/06/2011, 14h57
  2. [RegEx] Supprimer les balises HTML
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2008, 16h51
  3. [RegEx] probleme de reference arrière pour supprimer les balises html
    Par Galeenet dans le forum Langage
    Réponses: 1
    Dernier message: 16/10/2007, 23h02
  4. Supprimer les balises HTML dans un TextBox
    Par calagan99 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 04/07/2007, 16h38
  5. [RegEx] Supprimer les balises HTML
    Par hisy dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2006, 17h10

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