rexxars / html-validator
使用 Validator.nu 验证 HTML
2.3.0
2020-06-30 18:25 UTC
Requires
- php: >=5.6.0
- ext-dom: *
- ext-json: *
- guzzlehttp/guzzle: ^6.2.1|^7.0
Requires (Dev)
- ext-dom: *
- phpunit/phpunit: ^5.5.0
README
PHP 客户端,用于 validator.nu API。可以配置使用自托管的 API 版本。
版本 >= 2.0.0 需要 PHP >= 5.6。
版本 <= 1.1.0 支持 PHP <= 5.6,但将不再维护。
使用方法
<?php $document = file_get_contents('my-page.html'); $validator = new HtmlValidator\Validator(); $result = $validator->validateDocument($document); $result->hasErrors(); // true / false $result->hasWarnings(); // true / false $result->getErrors(); // array(HtmlValidator\Message) echo $result; // Prints all messages in human-readable format echo $result->toHTML(); // Prints all messages HTML-formatted
安装
要将 html-validator
包含到您的项目中,请将其添加到 composer.json
文件中
{ "require": { "rexxars/html-validator": "^2.2.0" } }
示例
待验证的文档(validate-me.html
)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Invalid HTML4!</title> </head> <body> <p>This document is not a proper, well-formed HTML4 document!</p> <p>It contains fatal flaws, like:</p> <ul> <li><div> tags which are not closed</li> <li>span-tags which are never opened are attempted closed </span></li> </ul> </body> </html>
使用验证器
<?php $document = file_get_contents('validate-me.html'); $validator = new HtmlValidator\Validator(); $validator->setParser(HtmlValidator\Validator::PARSER_HTML4); $result = $validator->validateDocument($document); echo $result;
输出
info: HTML4-specific tokenization errors are enabled.
error: End tag “li” seen, but there were open elements.
From line 10, column 44; to line 10, column 48
not closed</li>
error: Unclosed element “div”.
From line 10, column 13; to line 10, column 17
<li><div> tags
error: Stray end tag “span”.
From line 11, column 67; to line 11, column 73
ed closed </span></li>
验证 URL
从 1.1.0 版本开始,您可以验证 URL
<?php $validator = new HtmlValidator\Validator(); $validator->setParser(HtmlValidator\Validator::PARSER_HTML5); $result = $validator->validateUrl($url); echo $result;
请注意,如果您想检查返回状态码不在 2xx 范围内的页面(如 404 页面),则需要传递一个 checkErrorPages
选项
$validator = new HtmlValidator\Validator(); $validator->setParser(HtmlValidator\Validator::PARSER_HTML5); $result = $validator->validateUrl($url, ['checkErrorPages' => true]); echo $result;
使用自托管的 API 版本
查看 validator.nu 了解设置服务的说明。一旦设置好,您就可以配置验证器使用不同的主机
<?php $validator = new HtmlValidator\Validator('http://self-hosted-validator.domain.com');
许可协议
MIT 许可协议。请参阅 LICENSE 文件以获取完整条款。