[résolu] Nettoyage de chaine par Regex

Nettoyage de chaine par Regex [résolu] - PHP - Programmation

Marsh Posté le 12-10-2010 à 17:40:06    

Bonjour à tous,
 
voici un une chaine  

Code :
  1. $chaine = '<hd size="2" font="arial" size="2"><td font size="3"><a href="">lien</a>';


 
j'aimerais trouver l'expression régulière qui supprime le texte de cette chaine de "<hd" jusqu'au premier ">" et du "<td" jusqu'au ">" suivant.
pour obtenir

Code :
  1. <a href="">lien</a>


 
j'ai essayé ça :

Code :
  1. $chaine =  mb_ereg_replace("<hd(.*)><td(.*)>","",$chaine);


 
mais ça me vire tout. Comment puis-je rédiger mon expression régulière ?
Merci de votre aide


Message édité par sebnutt le 13-10-2010 à 11:29:51
Reply

Marsh Posté le 12-10-2010 à 17:40:06   

Reply

Marsh Posté le 13-10-2010 à 10:07:45    

Code :
  1. $chaine =  mb_ereg_replace("<hd(.*)><td[^>]*>","",$chaine);

Reply

Marsh Posté le 13-10-2010 à 11:16:48    

merci, je vais tester.
A côté, j'ai testé la fonction strip_tags, et ça marche pas mal...

Reply

Marsh Posté le 13-10-2010 à 11:29:39    

roondar, un grand merci, j'ai adapté ton bout de code à toutes les balises que je souhaitais virer, et ça a fonctionné à merveille !

Reply

Marsh Posté le 13-10-2010 à 11:31:22    

sebnutt a écrit :

roondar, un grand merci, j'ai adapté ton bout de code à toutes les balises que je souhaitais virer, et ça a fonctionné à merveille !


Ce fut un plaisir ^^
 
Sinon pourquoi tu n'utilises pas plutôt cette fonction http://fr.php.net/manual/fr/function.preg-replace.php ?

Reply

Marsh Posté le 15-10-2010 à 00:17:27    

je sais pas :)

 

mais à ce sujet, j'essaye d'utiliser preg_replace pour transformer

 

<img src=" "> en <img src="" />

 

et je cale.

 
Code :
  1. $chaine = preg_replace("<img[^>]>", "<img$1 />", $chaine);


ne fonctionne pas.

 

une idée ?

Message cité 1 fois
Message édité par sebnutt le 15-10-2010 à 00:17:52
Reply

Marsh Posté le 15-10-2010 à 09:22:12    

sebnutt a écrit :

je sais pas :)
 
mais à ce sujet, j'essaye d'utiliser preg_replace pour transformer
 
<img src=" "> en <img src="" />
 
et je cale.
 

Code :
  1. $chaine = preg_replace("<img[^>]>", "<img$1 />", $chaine);


ne fonctionne pas.
 
une idée ?


 
Je te conseille d'aller voir ce tuto sur les regex http://www.siteduzero.com/tutoriel [...] e-1-2.html , pour comprendre ce que tu fais notament la parte sur les "Les parenthèses capturantes" et ca http://php.net/manual/fr/function.preg-replace.php pour le fonctionnement de cette fonction.

Code :
  1. $chaine = preg_replace("#<img([^>]+)>#", "<img \1 />",  $chaine);


Message édité par roondar le 15-10-2010 à 09:29:00
Reply

Marsh Posté le 15-10-2010 à 09:47:26    

super ton tuto, merci !

Reply

Marsh Posté le 15-10-2010 à 10:16:04    

c'est pour faire quoi a la base ? nettoyer un fichier HTML ?

Reply

Marsh Posté le 15-10-2010 à 21:00:22    

yes. en fait je m'occupe de la migration d'un site dont certaines donnés stockées dans une base MYSQL contiennent du HTML dont je ne veux pas. mais je ne dois pas toucher à ces données, il faut que je m'arrange pour les rendre XHTML compliant sans toucher à la base - pour le moment.

Reply

Marsh Posté le 15-10-2010 à 21:00:22   

Reply

Marsh Posté le 15-10-2010 à 22:29:22    

c'est porc !

Reply

Marsh Posté le 16-10-2010 à 17:45:24    

c'est net ca ressemble a rien, utilise tidy ou DOMDocument c'est fait pour

Reply

Sujets relatifs:

Leave a Replay

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