Das W3C stellt eine sehr elegante API bereit, mit deren Hilfe man recht einfach Seiten automatisiert überprüfen kann, ob die Seiten Fehler hat und wenn ja, welche das sind.
Ich stelle das mal mit Hilfe des Zend Frameworks vor, da es damit wirklich sehr trivial ist.
<?php require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); $client = new Zend_Http_Client(); $result = $client->setMethod(Zend_Http_Client::POST) ->setUri('http://validator.w3.org/check') ->setParameterPost('uri', 'https://www.codemercenary.de') ->request(); Zend_Debug::dump($result->getHeaders()); file_put_contents('w3cresult.html', $result->getBody());
Als Ausgabe erhält nun die Header
array(12) { 'Date' => string(29) "Thu, 11 Oct 2012 12:03:20 GMT" 'Server' => string(22) "Apache/2.2.16 (Debian)" 'Content-language' => string(2) "en" 'X-w3c-validator-recursion' => string(1) "1" 'X-w3c-validator-status' => string(7) "Invalid" 'X-w3c-validator-errors' => string(2) "48" 'X-w3c-validator-warnings' => string(1) "3" 'Vary' => string(15) "Accept-Encoding" 'Content-encoding' => string(4) "gzip" 'Content-length' => string(4) "7228" 'Content-type' => string(24) "text/html; charset=UTF-8" 'Connection' => string(5) "close" }
Die Header kann nun recht einfach vergleichen, bei „X-w3c-validator-status“ kann man mittels test auf „Invalid“ schnell feststellen, dass was nicht funktioniert hat. Eine kurze Übersicht über die Anzahl der Fehler und Warnungen ist auch mittels Headeranalyse möglich.
Weitere Details stehen dann im Body, den ich im Beispiel in der letzten Zeile mal eben schnell auf die lokale Festplatte downloade.
So, das war der Crashkurs zum Thema „W3C-Validierung-Prüfung mit PHP“, weitere Infos findet ihr beim W3C in der API Doku: http://validator.w3.org/docs/api.html