php-extended/php-html-object

实现php-extended/php-html-interface接口库的库


README

实现php-extended/php-html-interface接口库的库。

coverage build status

安装

此库的安装通过composer进行,所有类的自动加载都通过其自动加载器完成。

  • 官方网站下载composer.phar
  • 然后运行以下命令将此库作为依赖项安装
  • php composer.phar require php-extended/php-html-object ^7

基本用法

要构建html树,只需使用集合节点和单个节点


use PhpExtended\Html\HtmlAbstractNode;
use PhpExtended\Html\HtmlCollectionNode;
use PhpExtended\Html\HtmlDoctypeNode;
use PhpExtended\Html\HtmlTextNode;

$document = new HtmlCollectionNode(HtmlAbstractNode::TYPE_DOCUMENT);
$doctype = new HtmlDoctypeNode();
$document->addChild($doctype);
$html = new HtmlCollectionNode('html');
$document->addChild($html);
$body = new HtmlCollectionNode('body');
$html->addChild($body);
$h1 = new HtmlCollectionNode('h1', ['class' => 'title']);
$body->addChild($h1);
$title = new HtmlTextNode('>> Example Title <<');
$h1->addChild($title);
$text = new HtmlCollectionNode('p', [], [new HtmlTextNode('This is an &xample.')]);
$body->addChild($text);

$document->__toString();
// <!DOCTYPE html><html><body><h1 class="title">&gt;&gt; Example Title &lt;&lt;</h1><p>This is an &amp;xample.</p></body></html>

要解析html数据,请执行以下操作


use PhpExtended\Html\HtmlParser;

$parser = new HtmlParser();
$node = $parser->parse('<!DOCTYPE html><html><head><meta charser="UTF-8" /></head><body><h1>Foo</h1></body></html>');
// $node is not an HtmlCollectionNodeInterface

许可证

MIT (见许可证文件)。