В предыдущей статье Локальный W3C XHTML валидатор для Mac OS X рассматривался способ запуска валидатора HTML-страниц локально для ускорения процесса тестирования. Сам процесс проверки HTML-страниц можно автоматизировать используя различные инструменты, например: Selenium, phpUnit, PEAR пакет Services_W3C_HTMLValidator…
Рассмотрим такой инструмент, как Services_W3C_HTMLValidator. Этот PEAR пакет представляет из себя ООП интерфейс для взаимодействия с API cервиса W3c HTML Validator.
Возможности Services_W3C_HTMLValidator:
- возможность использовать своей сервис w3c, например локально или на отдельном сервере
- валидация отдельных страниц
- валидация html кода
- проверка состояния пройден тест или нет
Ограничения Services_W3C_HTMLValidator:
- пакет не может проверить сам HTML-страницы без дополнительных инструментов, если страницы доступны только после авторизации
Алгоритм валидации всех HTML-страниц на сайте:
- для получения HTML-кода используем дополнительный инструмент, который позволяет «ходить» по сайту, с возможностью авторизации и выполнения каких-нибудь простых действий. В качестве такого инструмента воспользуемся Goutte клиент от автора фреймворка Symfony Fabien Potencier, Goutte доступен в качестве phar архива Goutte.phar. Клиент работает только под PHP 5.3
- Goutte возвращает HTML-код запрашиваемой страницы
- проводим валидицию полученного HTML-кода с помощью Services_W3C_HTMLValidator
- для автоматизации проверки большого количества страниц можно воспользоваться например phpUnit
Установка Services_W3C_HTMLValidator:
pear install Services_W3C_HTMLValidator
Пример валидации HTML-страницы:
<?php require_once 'Services/W3C/HTMLValidator.php'; $validator = new Services_W3C_HTMLValidator(); $validator->validator_uri = 'http://localhost/w3c-validator/check'; // http://validator.w3.org/check $r = $validator->validate('http://google.com/'); if ($r->isValid()) { echo $r->uri . ' is valid!'; } else { echo $r->uri . ' is NOT valid!'; }
Что почитать: