pejman/dom-parser

此包的最新版本(v1.1.8)没有可用的许可信息。

v1.1.8 2024-02-14 19:52 UTC

This package is auto-updated.

Last update: 2024-09-08 09:30:53 UTC


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";