Pb expression regul.

Résolu/Fermé
tcho59 Messages postés 2 Date d'inscription dimanche 19 novembre 2006 Statut Membre Dernière intervention 19 novembre 2006 - 19 nov. 2006 à 12:48
tcho59 Messages postés 2 Date d'inscription dimanche 19 novembre 2006 Statut Membre Dernière intervention 19 novembre 2006 - 19 nov. 2006 à 15:08
Bonjour à tous,

J'ai un petit problème qui me dépasse, au sujet d'une 'simple' expression régulière preg_replace. J'espère que qlqu'un pourra m'aider.

Voilà, je récupère une page html que je désire retraiter, pour cela je veux supprimer des balises et mettre les miennes. Je veux virer tout ce qu'il y a entre une balise <!doctype ...> et une baslise </p>.
J'utilise ceci qui fonctionnait pas mal mais apparament ca ne marche plus, et je c pas pourquoi (peut etre que de nouveau caractère on été inséré qui en sont pas prise pas mon expression):

<!DOCTYPE[^>]*?>([^>]*?|<|>)*</p>

Si quelqu'un peut m'aider, merci.

Tcho

1 réponse

Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
19 nov. 2006 à 13:38
Je ne comprends pas l'utilité de certains caractères dans ta regex.
Si tu veux remplacer tout ce qu'il y a entre <!DOCTYPE et </p>, pourquoi ne pas faire tout simplement :
$chaine=preg_replace('#<!DOCTYPE(.+)</p>#isU','blabla',$chaine);
0
tcho59 Messages postés 2 Date d'inscription dimanche 19 novembre 2006 Statut Membre Dernière intervention 19 novembre 2006
19 nov. 2006 à 15:08
Merci beaucoup Ssylvainsab, ca marche nikel.
En fait je suis au niveau inferieur du niveau débutant en expression reg, c pour ca que je suis arrivé à un truc bizare.

Je te remercie mec tu me sauve la vie.

++

Tcho
0