ELIMINER LES FAUTES DE VALIDITÉ W3C COURANTES.

ordiman85 Messages postés 41 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 19 mars 2010 - 14 août 2007 à 21:29
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008 - 28 août 2007 à 12:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43770-eliminer-les-fautes-de-validite-w3c-courantes

audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
28 août 2007 à 12:31
Aloha tout le monde ! Retour de vacance c'est le moment de reprendre les bonnes habitudes XD

@jdalton42 : Il faut accepter les critiques car celà permet de s'améliorer, d'autant plus que les remarques de coucou747 sont constructives et permettent de progresser.

@Dark_Genova "je trouve cette source bien plus utile qu'une source du type http://www.phpcs.com/codes/MD5-RELATION-RECIPROQUE_42416.aspx qui ne sert strictement à rien et exploite le PHP à des fins pour lesquels il n'est pas fait." : Si nous nous exploitions uniquement PHP pour ces premières fonctions, nous l'utiliserions que pour des Forums et pour des Livres d'or... Il est justement très interessant justement d'aller plus loin et de "pousser la bête" XD

Sinon que dire... C'est vrai que ce n'est que 20 lignes mais une vrai correction demanderai beaucoup trop de temps pour être générée de la sorte. Alors je suis de l'avis de "coucou747" et de "TheSin" : ce code est plus un snippet et je suis également de l'avis de "Kishkaya" pour porter en PHP un validateur W3C (je trouve l'idée pas mal je vais m'y mettre à mon retour ^^)
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
20 août 2007 à 21:44
a bon ? moi j'avais compris pourtant ... (la preuve avec mon post qui répondait au tient ^^)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2007 à 18:08
quand je disais "a part ca, bah t'as que 20 lignes de php..." je parlais du fait que ca ne constitue pas vraiment une source mais plutot un snippet... je poses peut-etre trop de sous entendus...
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
20 août 2007 à 17:12
Ca s'est simpa.
Mais bon, ca sert pas a grand chose de faire du php si t'as un servlet a côté.
Il faudrait tenter de le porter en php...=)
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
20 août 2007 à 17:07
@kishkaya : en java, oui il est open source et gratuit ;-)
on peut même l'installer sur son serveur tomcat si on veut :-)
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
20 août 2007 à 16:59
Il est fait en quoi le moteur d'analyse des pages html du w3c ?
Est-il open source ??
Dark_Genova Messages postés 26 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 16:52
@coucou747 : en voilà des remarques non-constructives et argneuses.
Première chose tu cites une erreur de codage :
" ob_start("validw3c"); => ob_start('validw3c'); "
Désolé mais il ne s'agit ABSOLUMENT pas d'une erreur de codage, mais d'un code PHP on ne peut plus valide. Par erreur de codage, tu as probablement voulu sous entendre une micro optimisation inutile de 0.00000001 seconde, micro optimisation déjà faite par le cache si son serveur en possède un. Le genre de micro optimisation dont seul se souciera un développeur de seconde catégorie.

Seconde remarque : "a part ca, bah t'as que 20 lignes de php..."
Mieux vaut 20 lignes de code PHP utiles, que 150 lignes de code inutile. Depuis quand le nombre de lignes joue dans l'utilité d'un code source, est à toi d'en juger ?

Je trouve l'idée de base de ce code source très sympatique. Bien entendu le but de cette source n'est clairement pas de fournir un parseur alternatif aux nombreuses extensions Firefox faisant déjà ce boulot. Au lieu de descendre un débutant en PHP qui aurait eu le malheur de pas poster une source conforme à tes petits critères personels, prend plutôt le temps de lui expliquer ses erreurs gentiment au lieu de le prendre de haut.

PS : je trouve cette source bien plus utile qu'une source du type http://www.phpcs.com/codes/MD5-RELATION-RECIPROQUE_42416.aspx qui ne sert strictement à rien et exploite le PHP à des fins pour lesquels il n'est pas fait. Fait toi un brute force en C si tu veux un code source optimisé.

A bon entendeur.

Maintenant pour répondre directement au sujet de la source, je rejoint l'avis général : mieux vaut coder proprement dès le début que de passer par un correcteur. Mais il vrai que pour les codeurs de l'ancienne qui ont démarés avec le bon vieux HTML de base, certaines habitudes sont dures à oublier et cet outil peut leur servir.
bricoloudu85 Messages postés 1 Date d'inscription samedi 27 mai 2006 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 14:53
juste au passage...
C'est pas parce que coucou747 est le meilleur selon ses propres statistiques que les autres n'ont pas le droit d'exister....
kylekatarnls Messages postés 35 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 1 juillet 2008
20 août 2007 à 13:54
> Frank_85
Il ne s'agit pas de masquer des fautes, puisque le code arrive au navigateur sans fautes (celles corrigées) et on ne code pas valide pour soi mais pour les autres je pense. C'était juste pour dire que le mot ne me semble pas approprié.
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
20 août 2007 à 11:21
Je crois plutôt que c'est un avis relativement général ici, puisque j'en suis (de cet avis là) ^^.
frank_85 Messages postés 6 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 25 août 2008
20 août 2007 à 10:30
je suis du même avis que killer19: autant coder propre...
A un moment ou un autre les erreurs masquées finiront par ressortir...
Perso je préfère passer du temps à cherhcer du code valide au besoin ou vérifier mes erreurs plutot que vouloir camoufler la misère...
Mais tout cela n'est bien sur que mon avis...
Gwinyam Messages postés 47 Date d'inscription vendredi 7 octobre 2005 Statut Membre Dernière intervention 2 janvier 2008
20 août 2007 à 09:49
Une bien belle chose de faite, c'est toujours ça de fait. Et en effet, on ne peut pas demander à une machine à café de faire des tartes. Je donne un 8 pour l'aspect pratique de la source et pour l'utilisation des expressions rationelles.

Après évidemment, le mieux reste de coder proprement, dès le début ;)
killer19 Messages postés 37 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 24 septembre 2007
20 août 2007 à 09:15
Ce code part d'une bonne idée. Mais quitte à vouloir rendre son code valide, autant le coder proprement, et puis ça retirera une couche de "correction" sur un site en production. Mais en développement ça peut servir je pense à "apprendre" les erreurs communes, et à les prendre en compte pour ne plus les refaire.

Après, d'un niveau plus technique, c'est sur que c'est plutot léger, par rapport à un parser total (TidyPhp ? :p) qui réécrirait entièrement le code, enfin c'est un choix. Mais on souhaiterait quand même plus de customisation, par exemple il me vient à l'esprit la déclaration de DTD : on a d'office un doctype qui ne spécifie pas si on bosse sur du strict ou transitionnel... Enfin, à mon avis il y a pas mal de choses qui pourraient être améliorées pour rendre ce programme très intéressant.
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
17 août 2007 à 23:13
par ailleurs, 20 lignes de code réutilisable, celà ne s'appelle pas un snippet de nos jours ? (un petit peu en abus de langage, je précise)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 août 2007 à 14:05
mais kylekatarnls... j'ai lu, mais ca ne change rien... c'est sans interet... regarde ta source, t'as 20 lignes de codes, evidement, ca ne fait pas le cafe... mais j'en ai plein des trucs de 20 lignes, si je les postais tous, ca serait une horreur phpcs... tu crois franchement que beaucoup de gens peuvent se servir de ca ?
ordiman85 Messages postés 41 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 19 mars 2010
15 août 2007 à 13:53
Il n'existe pas de miracle pour ce problème, la meilleure façon de le corriger, c'est de faire valider son code au fur et à mesure qu'on le tape... Ta source proposait une solution simple, pas très complète, mais performante, c'est pour cela que ça me plait. C'est toujours une bricole de plus que je n'utiliserai pas mais c'est toujours mieux que rien...
kylekatarnls Messages postés 35 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 1 juillet 2008
15 août 2007 à 13:49
Alors il faut apprendre à lire, je donne la liste des erreurs corrigées dans la description et moi je ne demande pas à une machine à café de faire des tartes !
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 août 2007 à 13:43
mal code :

<? => <?php

ob_start("validw3c"); => ob_start('validw3c');

a part ca, bah t'as que 20 lignes de php...

sans compter le fait que tu ne corriges que des fautes que tu avais prevues... et pas les fautes genre t'as inverse deux balises :

...

bref j'avais mis 3 a l'autre, ici, on va mettre 4 pour l'utilisation des regexp...
jdalton42 Messages postés 200 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 19 août 2009
15 août 2007 à 13:37
salut,

coucou747: arretons un peu de critiquer, il fait des efforts quand meme c'est deja mieu que l'autre source.


à améliorer mais c'est deja bien ;) je vote, aller un ptit 6 parce que sa ne corrige pas toute les fautes :p
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 août 2007 à 12:20
ca ne corrigera pas toutes les fautes... et ca ne les corrige que pour du xhtml... le w3c gere bien bien plus de choses que ca
ordiman85 Messages postés 41 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 19 mars 2010
14 août 2007 à 21:29
Bien joué ! J'aurais jamais pensé à utiliser preg_replace qui au niveau des performances est rapide.
Si je faisais une telle classe je parserais directement le html en détectant les '<' et '>' et en fonctionnant comme un xmlparser avec une méthode 'startTag' et une autre 'closeTag' mais ça risque d'être compliqué vu que des balises ne se ferment pas... Avec un tableau d'exceptions qui regroupent les balises souvent non-fermées peut-on peut-être faire ce genre de chose ??

En tous cas la méthode 'preg_replace' est sans doute la méthode qui détruira le moins le document. Je trouve l'idée très bonne :)