wikimedia / remex-html
快速HTML 5解析器
4.1.0
2024-03-16 15:54 UTC
Requires
- php: >=7.4
- ext-dom: *
- ext-mbstring: *
- wikimedia/utfnormal: ^3.0.1 || ^4.0.0
Requires (Dev)
- ext-json: *
- mediawiki/mediawiki-codesniffer: 43.0.0
- mediawiki/mediawiki-phan-config: 0.12.1
- mediawiki/minus-x: 1.1.1
- ockcyp/covers-validator: 1.6.0
- php-parallel-lint/php-console-highlighter: 1.0.0
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpunit/phpunit: 9.6.16
- wikimedia/update-history: 1.0.1
README
RemexHtml 是一个用于解析 HTML 5 的解析器,用 PHP 编写。
RemexHtml 的目标是
- 模块化和灵活。
- 快速,而不是优雅。例如,我们有时会使用直接成员访问而不是通过访问器,并手动内联一些性能敏感的代码。
- 健壮,旨在达到 O(N) 最坏情况性能。
RemexHtml 包含以下模块
- 一个符合标准的预处理器和分词器。这生成一个标记事件流。
- 符合标准的树构建,包括错误恢复。这生成一个树突变事件流。
- 一个快速集成的 HTML 序列化器,符合 HTML 片段序列化算法。
- DOMDocument 构建。
RemexHtml 目前缺少
- 编码支持。预期输入是有效的 UTF-8。
- 脚本。
- 精确符合指定的解析错误生成。
RemexHtml 旨在符合 W3C 建议的 HTML 5.1,除了少量回溯的 bug 修复。我们选择实现 W3C 标准,而不是最新的 WHATWG 草案,因为我们的应用需要稳定性,而不是功能完整性。
RemexHtml 通过了所有 html5lib 测试,除了解析错误计数和引用标准未来版本的测试。
警告 这是一个新的项目,我们仍在开发用例。因此,API 可能会更改。
例如,请参阅 bin/test.php
中的示例代码。