regex et nettoyage de code html

regex et nettoyage de code html - PHP - Programmation

Marsh Posté le 18-01-2008 à 14:41:23    

hello, je suis en train de tenter de faire une regex afin de nettoyer un code html comme celui-ci:

Code :
  1. <span style="color: rgb(255, 107, 33); font-weight: bold;" class="style5"><span class="style2"><span class="style3"><span class="style4"><span class="style3"><span class="style5"><span class="style1"><span class="style4"><span class="style3"><span class="style1">jkjkjkjk</span></span></span></span></span></span></span></span></span></span><br />


 
donc ce qu'il faudrait, c'est virer toutes les balises <span> entre la première et la dernière balise <span>, puis récupérer le style de la dernière balise pour le remplacer dans la première, et enfin virer les </span> inutiles.
 
donc obtenir ceci:

Code :
  1. <span style="color: rgb(255, 107, 33); font-weight: bold;" class="style1">jkjkjkjk</span><br />


 
j'ai tenté péniblement de déjà virer les <span> en trop, mais j'y suis pas arrivé, ce qu'il me faudrait je pense c'est un truc du genre:

Code :
  1. $txt=preg_replace("`(<span[^>]*> )<span[^>]*>(<span[^>]*> )`","$1$2",$txt);


mais où le <span[^>]*> du milieu peut-être répété une ou plusieurs fois (comment spécifier ça?)
 
 

Reply

Marsh Posté le 18-01-2008 à 14:41:23   

Reply

Marsh Posté le 18-01-2008 à 14:48:26    

J'essaierai comme ça :
 

Code :
  1. $txt=preg_replace("`(<span[^>]*> )(<span[^>]*> )+(<span[^>]*> )`","$1$3",$txt);


 
Mais je suis pas totalement sur :P

Reply

Marsh Posté le 18-01-2008 à 14:58:12    

ben ça marche pas... mais t'es sûr que c'est correct de mettre entre parenthèses le span du milieu pour pouvoir mettre un + ?
ça me semble bizarre...

Reply

Marsh Posté le 18-01-2008 à 15:14:09    

oh ben mince ça marche finalement.... il y avait des espaces en trop voilà tout... ben merci beaucoup, je vais continuer!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed