script de detection de code html mal equilibre en php ?

Le
michel
Bonjour,


Bein que pratiquant les expressions régulière set ayant largement
exploré sur ce sujet, je ne vois pas de pistes pour une fonction qui
indiquerait si un une chaine html a des défauts d'équilibrage ou pas,
du genre :

- balise de fermeture manquante

- mauvais équilibrage (balises de fermeture dans le mauvais ordre :
<b><i>texte</b></i> au lieu de <b><i>texte</i></b>

- balise non terminée<div au lieu de <div>

Si quelqu'un a déjà vu quelque chose du genre, et si je trouve le
premier je l'indiquerai ici.

A bientôt,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #20148321
Le 15/09/2009 11:31, michel a écrit :

Bien que pratiquant les expressions régulières et ayant largement
exploré sur ce sujet, je ne vois pas de pistes pour une fonction qui
indiquerait si une chaine html a des défauts d'équilibrage ou pas,
du genre :

- balise de fermeture manquante

- mauvais équilibrage (balises de fermeture dans le mauvais ordre :
<b><i>texte</b></i> au lieu de <b><i>texte</i></b>

- balise non terminée<div au lieu de <div>



Je trouve normal que tu ne voies pas de pistes utilisant les expressions
rationnelles, tout simplement parce que la structure d'un document HTML
est beaucoup plus complexe que ce que peuvent traiter les regexp ! C'est
déjà vrai pour du XHTML, alors même qu'aucune balise n'est optionnelle,
ni ouvrante ni fermante, et que les guillemets sont obligatoires autour
de tous les attributs, mais c'est encore pire pour le HTML.

Si quelqu'un a déjà vu quelque chose du genre, et si je trouve le
premier je l'indiquerai ici.



Pour du XHTML, tu peux utiliser les fonctions de manipulation de XML :

Quant au HTML, voir par exemple ici et suivre les liens :

Cela dit, si ton seul souci est de vérifier la syntaxe de tes pages, tu
n'as pas forcément besoin de le faire en PHP.
Validateur du W3C : Extension pour Gecko :
Cordialement,
--
Olivier Miakinen
Michael DENIS
Le #20150331
Olivier Miakinen a écrit :
Validateur du W3C : Extension pour Gecko :


Pour une validation "off-line" moins gourmande en ressources et
automatique, il y a aussi html validator :

http://users.skynet.be/mgueury/mozilla/

--
Michaël DENIS
Olivier Miakinen
Le #20151471
Le 15/09/2009 12:06, je répondais à michel :

Je trouve normal que tu ne voies pas de pistes utilisant les expressions
rationnelles, tout simplement parce que la structure d'un document HTML
est beaucoup plus complexe que ce que peuvent traiter les regexp ! C'est
déjà vrai pour du XHTML, alors même qu'aucune balise n'est optionnelle,
ni ouvrante ni fermante, et que les guillemets sont obligatoires autour
de tous les attributs, mais c'est encore pire pour le HTML.



La preuve :
--------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!--
</html>
</body>
<p><b>machin<i>truc</b>chose</i>
<div/>
>/div<
-->
<title>Code bizarre mais valide</title>
<!--
<body>
</head>
-->
<p>Code bizarre mais valide
<!--
<head>
<html>
-->
--------------------------------------------------------------------

Et encore, je n'ai pas rajouté de structures imbriquées de dix mille
div les uns dans les autres, ce qui rendrait le traitement par des
expressions rationnelles encore plus difficile.
Publicité
Poster une réponse
Anonyme