hrmatching / advanced_html_dom
该软件包的官方仓库似乎已不存在,因此软件包已被冻结。
dev-master
2018-05-16 21:44 UTC
Requires
- php: >=5.4
This package is not auto-updated.
Last update: 2023-01-25 10:56:12 UTC
README
更新:我已用php 7.0.1 - 7.0.5以及PHP 5.3及更高版本测试了此库,一切似乎正常。
此项目的目标是成为PHP简单html dom库的基于DOM的即插即用替代品。
如何使用 - 与简单html dom库相同。如果你使用file/str_get_html,则无需更改任何内容。如果你使用new simple_html_dom()进行实例化,则需要将其更改为new AdvancedHtmlDom()
有什么不同 - 主要是在HTML中的格式化(空格)。这是由DOM添加的,无法避免。一些非标准选择器已被删除,但添加了更多标准选择器。例如:img[src!=foo]已被删除,因为它不是一个有效的选择器。添加了诸如a + b和a ~ b或甚至是a.foo:not(.bar)之类的功能。
优点
- 10x-20x的性能提升
- 降低内存需求
- 支持更多CSS选择器
特性
- 支持完整的CSS伪选择器以及许多jQuery扩展:
:not、:has、:contains、:gt、:lt、:eq - 可以使用css或xpath进行使用:
$doc->find('h3 a'), $doc->find('//h3//a') - jQuery风格的函数替换、包装、解包、前后
- 节点集数学:
$doc->find('a')->minus($doc->find('.skip_me')) - 许多BeautifulSoup和Nokogiri都无法做到的事情:
$doc->search('span:lt(7):not(.foo)') - 许多尚未文档化的功能。
如果你喜欢Advanced HTML Dom,请在这里投票!
如何安装它
将以下代码添加到你的composer.json中
{
"require": {
"hrmatching/advanced_html_dom": "dev-master"
},
"autoload": {
"classmap": ["vendor/hrmatching/advanced_html_dom/advanced_html_dom.php"]
}
}