theaomx/htmlnode

通过使用易于使用的HtmlBuilder构建AST-Node-Trees来创建自定义HTML标记。

1.0.5 2018-04-09 09:20 UTC

This package is not auto-updated.

Last update: 2024-09-18 03:19:26 UTC


README

这是一个允许你在PHP代码中表示任意HTML-AST-Node-Trees的项目。这有几个用途。如果你在你的项目中使用这些类,你将操作节点树而不是字符串。因此,你可以将这些实例从一个方法传递到另一个方法,并直接操作树。只有当树的根或树的另一部分使用echo或print打印时,树才会转换为正确的HTML标签。请查看index.php,它创建了一个示例网站,你可以在那里看到相关的API调用。

简单示例,创建一个HTML5基本网站

use \TheAomx\Nodes\HtmlNode as HtmlNode;
use \TheAomx\Nodes\Indentation as Indentation;

$html = HtmlNode::get_builder("html")->attr("lang", "de")->build();

$head = HtmlNode::get_builder("head")->build();
$charset = HtmlNode::get_builder("meta")->attr("charset", "utf-8")->build();
$viewport = HtmlNode::get_builder("meta")->attr("name", "viewport")->
                attr("content", "width=device-width, initial-scale=1.0")->build();
$title = HtmlNode::get_builder("title")->text("Hello World Site")->build();
$head->addChildNode($charset)->addChildNode($viewport)->addChildNode($title);

$body = HtmlNode::get_builder("body")->build();
$html->append($head)->append($body);

$h1 = HtmlNode::get_builder("h1")->text("Welcome stranger!")->build();
$p = HtmlNode::get_builder("p")->attr("style", "color: red;")->
                attribute("align", "left")->build();
$b = HtmlNode::get_builder("b")->s_text("Hello World with umlaute äöü&%")->build();
$p->append($b);

$body->append($h1)->append($p);

// only at this step the root ast-node $html gets converted to a string!
echo $html;

上述示例生成的HTML结果如下。如果你想的话,可以禁用HTML输出的美化打印,这样就不需要传输空白行或空格。

<html lang="de">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>
      Hello World Site
    </title>
  </head>
  <body>
    <h1>
      Welcome stranger!
    </h1>
    <p style="color: red;" align="left">
      <b>
        Hello World with umlaute &auml;&ouml;&uuml;&amp;%
      </b>
    </p>
  </body>
</html>