URL: https://linuxfr.org/forums/astucesdivers/posts/nettoyer-un-code-html-sale Title: Nettoyer un code HTML sale Authors: steckdenis Date: 2009年05月01日T18:35:21+02:00 Tags: Score: 3 Bonjour, J'ai eu l'occasion de me plonger dans un code HTML qui doit dater d'il y a assez longtemps car je "remet à neuf" un vieux site. Pour les curieux, le "code" est de [ce genre](http://logram.pastebin.com/f2bada130). Il est sale, conçu pour les polices Windows (déclarées à chaque balise !), et lourd. Mon script se charge donc de faire quelques regex là dessus (pas de DOM, ce machin n'est absolument pas compatible XML), et réussi à me sortir un résultat tel que [celui-là](http://logram.pastebin.com/f725e0eef), propre, clair, net, indenté, et sémantique (même les pseudo-listes à puces à base de "1. truc 2. machin" sont converties en belles listes !). Le code en question n'est qu'une suite de regex. Malheureusement, il n'est adapté qu'au "codeur" qui a créé ce site (je soupçonne FrontPage de faire un truc pareil), et n'est adapté qu'au nettoyage de tables. C'est déjà suffisant, car les tables sont très difficiles à nettoyer "à la main" (comptez 30 minutes pour mon exemple, en le faisant bien). Avec mon script, une simple ligne de commande vous sort le résultat :D : [**le script**](http://logram.pastebin.com/f3a1eaa9f). Il s'utilise tout simplement : php converttables sourcefile.html destfile.html _sourcefile.html_ n'est pas modifié. PS: Si vous êtes attentif, vous remarquerez que dans toute une partie du script, les tabulations sont remplacées par des "####". C'est simple : si je mets "\t" à la place, la regex ne fait rien ! Je ne sais pas où se situe le bug, mais c'est étrange.