Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2007, 14h58   #1
Invité de passage
 
Inscription : février 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 23
Points : 2
Points : 2
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 :
1
2
3
<td colspan=2 valign=top>
  <p>toto</p>
</td>
doit devenir
Code HTML :
1
2
3
<td colspan=2 valign=top>
toto
</td>
j'ai essayé en faisant :
Code :
$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.
shinji_rem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 16h43   #2
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
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 :
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 :
1
2
$r = '~(?=<td[^>]*>)(.*?)<p>(.*?)</p>~is';
preg_replace($r, '\1\2', $s);
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2007, 17h20   #3
Invité de passage
 
Inscription : février 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 23
Points : 2
Points : 2
merci cela marche parfaitement!
shinji_rem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h08.


 
 
 
 
Partenaires

Hébergement Web