OVH Cloud OVH Cloud

Mise en forme HTML

5 réponses
Avatar
Ludovic
Bonjour,
Je souhaiterais que le code HTML généré par une page PHP soit
indenté (et propre), existe-t-il des moyens autre que tidy pour
réaliser cela? j'ai essayé d'employer quelques expressions
régulières mais le résultat n'est pas très concluant pour le
moment.

Merci pour toute aide

Ludovic
http://mon.calendrier.free.fr

5 réponses

Avatar
Florian Sinatra
*Ludovic* @ 11/03/2006 16:10 :
Bonjour,
Je souhaiterais que le code HTML généré par une page PHP soit
indenté (et propre), existe-t-il des moyens autre que tidy pour
réaliser cela? j'ai essayé d'employer quelques expressions
régulières mais le résultat n'est pas très concluant pour le
moment.


Tu parles du cas où tu n'est pas maître de la génération du HTML ?
Essaie avec LibScrub (en version bêta, mais fonctionnelle) :
<http://rakaz.nl/extra/scrub>

Extrêmement configurable, mais bien peu documenté. Voici comment faire :
* inclure "lib-scrub.php";
/include "lib/lib-scrub.php";/
* inclure un fichier de configuration de libscrub (voir par exemple
<http://rakaz.nl/projects/scrub/config.phps>
/include "lib/lib-scrub.config.php";/
* créer une instance de la classe *Scrub*
/$Main = new Scrub();/
* appeler les méthodes *SetAllowedNodes* et *SetAllowedTags* avec pour
paramètres respectivement les tableaux *$allowed_nodes* et
*$allowed_tags* du fichier de config.
/$Main->SetAllowedNodes($allowed_nodes);/
/$Main->SetAllowedTags($allowed_tags);/
* C'est la méthode *parse* qui traitera la chaîne passée en argument.
/echo $Main->parse($_POST["area"]);/

C'est une libraire très lourde. Suivant la taille du fichier, on peut
arriver aux 30 secondes de traitement !

Merci pour toute aide

Ludovic
http://mon.calendrier.free.fr


Très belle application. C'est de ton cru ? Comptes-tu la distribuer ? Ca
m'intéresse.
Note : ton code est loin d'être valide (2711 erreurs), car tous tes
éléments sont en majuscules !

Avatar
Ludovic
merci,
la majorité du code est de mon "cru", j'ai juste récupéré la partie
lunaison (que j'ai remis un peu à ma sauce) dont je n'ai d'ailleurs
pas encore vérifier la validité.
Je vais mettre tous les tag en minuscule (j'utilise une version de tidy
avec firefox 1.5, les 2711 erreurs ne m'étaient pas reportées!)

Je vais également essayé de recupérer scrub pour mettre en forme le
tout, je veux eviter que cela ne prenne trop de temps de calcul qu'en
meme
Avatar
Florian Sinatra
*Ludovic* @ 11/03/2006 21:14 :
merci,
la majorité du code est de mon "cru", j'ai juste récupéré la partie
lunaison (que j'ai remis un peu à ma sauce) dont je n'ai d'ailleurs
pas encore vérifier la validité.
Est-il open-source ? :-)


Je vais mettre tous les tag en minuscule (j'utilise une version de tidy
avec firefox 1.5, les 2711 erreurs ne m'étaient pas reportées!)
Je l'utilise aussi, et elle ne les reporte pas. Tidy est pratique pour

détecter la plupart des erreurs (et pour être fier lorsque le petit V
vert s'affiche, ou voir si un site est bien codé), mais il lui arrive de
zapper quantité d'énormes erreurs grossières ! Impossible donc de se
passer de validation.

Je vais également essayé de recupérer scrub pour mettre en forme le
tout, je veux eviter que cela ne prenne trop de temps de calcul qu'en
meme
Pour donner un exemple, j'ai tenté de créer une appli PHP qui parserait

le fichier bookmarks.htm de firefox, en sortirait tous mes marque-pages,
les insérerait dans une BDD, et sur demande les sortirait en RDF et les
afficherait avec XUL. Ce fichier est tellement mal foutu qu'il m'était
obligé de le parser. Eh bien avec Scrub, le script atteignait le timeout
à chaque coup (bon mon fichier fait près de 700 Ko quand même).
En principe tu ne devrais pas avoir de problème, si tu configures bien
les $allowed_tags ;-)

Avatar
Ludovic
j'ai tenté d'utiliser scrub, cela modifie un peu l'apparence et
malgré quelques modifications dans le fichier de config (suppression
des transformations), je n'obtiens plus le code javascript et il semble
ajouter des tbody dans les table ...

le code n'est pas libre pour le moment

Ludovic
http://mon.calendrier.free.fr
Avatar
alex
"Ludovic" a écrit dans le message de news:

Bonjour,
Je souhaiterais que le code HTML généré par une page PHP soit
indenté (et propre), existe-t-il des moyens autre que tidy pour
réaliser cela? j'ai essayé d'employer quelques expressions
régulières mais le résultat n'est pas très concluant pour le
moment.

Merci pour toute aide

Ludovic
http://mon.calendrier.free.fr


Si tu génères ton code HTML via du code php du genre

echo "<table><tr><td>mon tableau</td></tr></table>" ;

je te conseille d'utiliser les templates.
Pour ma part, j'utilise un vieille classe qui fait toujours l'affaire. Il
semble néanmoins que smarty soit une référence en la matière.
Voici un comparatif : http://cyberzoide.developpez.com/php4/template/

--
alex