hexydec/htmldoc

基于标记的HTML文档解析器和压缩器。即时压缩HTML文档,包括内联CSS、JavaScript和SVG。提取文档文本、属性和片段。完整的测试套件。

1.8.3 2023-12-30 22:06 UTC

README

基于标记器的HTML文档解析器和压缩器,用PHP编写。

Licence Status: Stable Tests Status Code Coverage

描述

一个HTML解析器,主要用于压缩HTML文档,同时也允许查询文档结构,以便提取属性和文本节点值。

解析器设计基于标记器,使文档处理比基于正则表达式的压缩器更可靠,后者有点粗略,如果匹配错误位置的模式,可能会出现问题。

该软件还可以处理和压缩SVG文档。

用法

压缩HTML文档

use hexydec\html\htmldoc;

$doc = new htmldoc();

// load from a variable
if ($doc->load($html) {

	// minify the document
	$doc->minify();

	// compile back to HTML
	echo $doc->save();
}

您可以在 https://hexydec.com/apps/minify-html/ 上在线测试压缩器,或者安装后运行提供的 index.php 文件。

从HTML文档中提取数据

use hexydec\html\htmldoc;

$doc = new htmldoc();

// load from a URL this time
if ($doc->open($url) {

	// extract text
	$text = $doc->find('.article__body')->text();

	// extract attribute
	$attr = $doc->find('.article__author-image')->attr('src');

	// extract HTML
	$html = $doc->find('.article__body')->html();
}

安装

启动的最简单方法是使用composer

$ composer install hexydec/htmldoc

HTMLdoc需要 \hexydec\token\tokenise 来运行,如果不使用composer,您可以手动安装。可选地,您还可以安装 CSSdocJSlite 来分别执行内联CSS和JavaScript压缩。

所有这些依赖项都将通过composer安装。

测试套件

您可以像这样运行测试套件

Linux

$ vendor/bin/phpunit

Windows

> vendor\bin\phpunit

文档

支持

HTMLdoc支持PHP版本8.0及以上。

贡献

如果您发现HTMLdoc有问题,请在跟踪器中创建问题。

如果您希望自行修复问题,请复制代码,修复问题,然后创建一个pull request,我将评估您的提交。

许可

MIT许可(MIT)。有关更多信息,请参阅 许可文件