rexxars/html-validator

使用 Validator.nu 验证 HTML

2.3.0 2020-06-30 18:25 UTC

This package is auto-updated.

Last update: 2024-08-29 03:41:56 UTC


README

PHP 客户端,用于 validator.nu API。可以配置使用自托管的 API 版本。

Latest Stable VersionPHP VersionLicenseBuild Status

版本 >= 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 文件以获取完整条款。