Script PHP de validation (X)HTML

WRInaute impliqué
Bonjour,

Quelqu'un connait il une classe php ou un script qui permette de valider une page web , selon les normes du w3c ?

Je sais que le validateur du w3c est open source, mais le code est en perl.. je prefererais bosser avec du php, voire du python.

merci pour votre aide :)
 
WRInaute discret
Au pire, tu peux toujours faire un script ohp qui lance une validation en ligne, récupère la page et en extrait les infos que tu veux. Ce n'est pas le top car tu utilises la puissance des serveurs, mais si ce n'est que pour quelques pages ça devrait aller.
 
WRInaute impliqué
Je cherche un moyen elegant de verifier si une page web est conforme w3c, de facon automatisee, car je veux l'inclure a un systeme de rapports automatiques..

Je pense avoir trouve une solution :)

En fait, je vais utiliser des uri de ce style :

http://validator.w3.org/check?uri=...&output=xml

Ce qui me permet de recuperer le resultat de la validation sous forme xml, apres c'est un jeu d'enfants :)
 
WRInaute passionné
fbparis a dit:
En fait, je vais utiliser des uri de ce style :

http://validator.w3.org/check?uri=...&output=xml

Ce qui me permet de recuperer le resultat de la validation sous forme xml, apres c'est un jeu d'enfants :)

Excellente solution, merci pour l'astuce. Tu peux aussi utiliser tidy pour valider la conformité d'un document

http://fr2.php.net/manual/fr/function.tidy-diagnose.php

tu obtient une réponse de la forme :
[/code]
Code:
line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

c'est moins sympa que la sortie xml du w3c, mais si tu as bc d'uri à valider ça t'évite de perdre du temps en GET.
 
WRInaute impliqué
C'est quand meme bien pratique, quand je pense que j'ai cherche pendant 2heures et yavait une fonction php lol..

mais bon, c php5 et je code toujours en php4...
 
WRInaute passionné
fbparis a dit:
C'est quand meme bien pratique, quand je pense que j'ai cherche pendant 2heures et yavait une fonction php lol..

mais bon, c php5 et je code toujours en php4...

non, non :
Tidy est actuellement disponible pour PHP 4.3.x et PHP 5 en tant qu'extension PECL. L'extension est disponible sur http://pecl.php.net/package/tidy.

Note : Tidy 1.0 fonctionne juste avec PHP 4.3.x, alors que Tidy 2.0 ne fonctionne que avec PHP 5.

tu peux démarrer en php4 avec tidy 1.0. Tidy est un bon parser d'arbre HTML ( pas parfait, mais pas loin ).
C'est pour quand le grand saut vers php5 ? :)
 
WRInaute impliqué
Qu'est ce que tu cherches à faire :
- savoir si ta page est valide
- produire des pages conformes

Si c'est la deuxième solution, il y a des libs qui pourront t'aider, je pense notament à HTML_SAX sur PEAR qui fonctionne sous PHP4 ou bien http://xhtmlvalidator.sourceforge.net/ qui fonctionne sous PHP5
 
WRInaute passionné
voici le code (du manuel php) pour valider automatiquement une page php (en utilisant tidy)

Code:
<?php
ob_start();
?>
<html>a html document</html>
<?
$html = ob_get_clean();

// Specify configuration
$config = array(
           'indent'        => true,
           'output-xhtml'  => true,
           'wrap'          => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Output
echo $tidy;
?>


je l'utilise pour deux de mes sites et ça marche nikel ;)

attention si le code html est vraiment mal fait (balises orpheline par exemple) tidy peut faire n'importequoi.
 
Nouveau WRInaute
Coucou

Moi je fait la validation grace a DomDocument->validate().
Ca marche nickel. Je crois que ca passe aussi en PHP4
 
Discussions similaires
Haut