HTML Validator в Javascript / PHP? (не обязательно XML) - PullRequest
1 голос
/ 26 августа 2009

Я ищу что-то вроде http://validator.nu/, Я проверю ввод html (строку) и хочу уведомить пользователя, если есть какие-либо отсутствующие конечные теги, не может ли определенный элемент иметь определенный атрибут, вещи такого рода (HTML 4.01 Строгая проверка в основном).

Sidenote: Я не буду иметь дело с XML / DTD, и я не хочу исправлять пользовательский ввод, например, как http://htmlpurifier.org/ делает это.

Ответы [ 2 ]

4 голосов
/ 26 августа 2009

Для проверки HTML, выполненной из PHP, расширение tidy может делать то, что вы хотите:

Tidy - это привязка к Tidy HTML чистая и ремонтная утилита, которая позволяет Вы не только чистите, но и иначе манипулировать HTML-документами, но также пройти по дереву документов

Пример, приведенный для конструкции tidy :: __ , выглядит следующим образом:

$html = <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy();
$tidy->ParseString($html);

$tidy->CleanRepair();

if ($tidy->errorBuffer) {
    var_dump($tidy->errorBuffer);
}

И дает такой вывод:

string 'line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>' (length=104)

Пара или другие методы тоже интересны, кстати; -)


Обратите внимание, что вам нужно установить / включить это расширение на вашем веб-сервере, однако в выходных данных phpinfo().

должен быть раздел "аккуратно"
2 голосов
/ 18 сентября 2009

Итак, я использовал официальный веб-сервис W3 Validator SOAP , потому что он намного превосходит предупреждения Тиди, и это просто идеальный инструмент, который мне нужен. Нужно было изучить некоторые правила SOAP и пространства имен, но это того стоило:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...