zenthangplus/html-dom-parser

一个简单的PHP编写的HTML DOM解析器,让您可以使用CSS选择器轻松操作HTML。

1.0.3 2019-05-13 16:45 UTC

This package is auto-updated.

Last update: 2024-09-14 06:27:15 UTC


README

Travis Status CodeShip Status CircleCI

一个简单的PHP编写的HTML DOM解析器,让您可以使用CSS选择器轻松操作HTML。

这是Simple HTML DOM的现代版本。您可以使用Composer安装并作为包导入到项目中。

功能

  • 解析和修改HTML文档。
  • 使用类似jQuery的选择器在HTML中查找标签(元素)。
  • 单行提取HTML内容。
  • 将元素或特定节点导出到单个文件。
  • 支持结构无效的HTML文档。

安装

您可以使用Composer通过运行以下命令将此包安装到项目中:

composer require zenthangplus/html-dom-parser

最低PHP版本要求为5.6。如果您使用的是PHP < 5.6,请使用原始版本

用法

以下示例是此包的简单用法

<?php
$dom = \HTMLDomParser\DomFactory::load('<div class="container"><div class="anchor"><a href="#">Test</a></div></div>');
$a = $dom->findOne('.container a');
echo $a->text();
// Output: Test

DOM

Dom是HTML文档的根节点

您可以从stringfile加载DOM。

<?php
$dom = \HTMLDomParser\DomFactory::load('<div>Test</div>');
<?php
$dom = \HTMLDomParser\DomFactory::loadFile('document.html');

NODE

Node是一个简单的HTML元素,以对象的形式描述。

您也可以加载任何Node(类似于Dom

<?php
$node = \HTMLDomParser\NodeFactory::load('<div><a href="#">Test</a></div>');
<?php
$node = \HTMLDomParser\NodeFactory::loadFile('document.html');

遍历DOM

使用类似jQuery或CSS的选择器,您可以轻松地在DomNode中遍历。

示例

<?php
$dom = \HTMLDomParser\DomFactory::loadFile('document.html');
$dom->find('div');
$dom->find('#container');
$dom->find('#container .content ul>li a.external-link');
$dom->find('#container .content ul>li a[data-id=link-1]');

类似于Dom,Node也可以遍历

<?php
$dom = \HTMLDomParser\DomFactory::loadFile('document.html');
$node = $dom->findOne('#container .content ul>li');
$anchorNode = $node->findOne('a.external-link');

// Even traverse in a separate Node
$node = \HTMLDomParser\NodeFactory::load('<ul class="list"><li>Item 1</li><li>Item 2</li></ul>');
$node->find('ul.list li');
支持的选择器列表
您可以使用以下选择器进行操作的函数列表
特定查找函数
访问节点数据
修改节点数据
遍历节点树