pejman / dom-parser
此包的最新版本(v1.1.8)没有可用的许可信息。
v1.1.8
2024-02-14 19:52 UTC
Requires (Dev)
- phpunit/phpunit: ^10
README
快速 PHP HTML DOM 解析器
- 所有 PHP 版本均可正常工作,无需扩展
- 无需 PHP 扩展
- 未使用正则表达式
- 可嵌入到其他语言如 JS
- 可加载 XML 文件如 HTML
- PQuery 类似于 JQuery
安装
composer require pejman/dom-parser
在这个项目中,我没有使用正则表达式,只是用纯 PHP 进行解析
快速使用
<?php include __dir__.'/../vendor/autoload.php'; $p = e( '<div><div class="test">ss<span class="aa">innnerssss</span><span class="aa">innnnn</span></div></div><div class="test1">eee</div>'); dump( $p->document );
用法
$element = $p->find(".test",0); $element->next; $element->next(); $element->prev; $element->prev(); $element->parent; $element->parent(); //all childs $element->children(); //first child $element->children(0); //all attributes $element->attrs; //find in tag $element->find("span"); //set attr $element->attr( $key, $value ); //set attr $element->href='test'; //get attr $element->href; $element->getElementById("test"); $element->getElementByTagName("span"); $element->getElementsByTagName("span"); $element->html(); $element->text(); $element->outerHtml(); //remove element $element->remove(); //update html $element->html('ddd'); //get html $element->html(); $element->html;
PQuery 类似于 JQuery
<?php include __dir__.'/../vendor/autoload.php'; $p = e( '<div id="test"><div class="test"><span>aaa</span>bbb<span>ccc</span></div></div><div class="test1">eee</div>'); pq("#test span")->each(function( $elm ) { echo pq( $elm )->html()."\n"; }); print_r( pq("#test")->next()->attr('class') ); echo "\n"; pq("#test")->addClass("added-class"); echo pq("#test")->outerHtml(); echo "\n"; pq("#test")->removeClass("added-class"); echo pq("#test")->outerHtml(); echo "\n"; pq("#test")->addClass("added-class"); echo pq("#test")->outerHtml(); echo "\n";