PHP - 寻找HTML生成器/管理器

时间:2010-03-30 18:13:27

标签: php html

我正在尝试找到一个可用于以编程方式生成标记的工具(非irl字)。这是我在伪代码中试图完成的一个例子......

$htmlDoc = new HTML_Document();

$htmlDoc->setTitle('Cool Title');

$htmlDoc->addJs('some_js_file.js');
$htmlDoc->addStylesheet('some_css_file.css');

$divElement = new HTML_Element_Div();
$htmlDoc->append('body', $divElement);

$output = $htmlDoc->generate();

最好的工具是什么?

4 个答案:

答案 0 :(得分:5)

我正在开发一个解决这个常见任务的简单DSL。它被称为 htmlgen ,它正在Github上托管。

我刚推动2.x进行了一些重大改进。

这是一个例子

use function htmlgen\html as h;

h('#wrapper',
  h('h1.title', 'Hello, World'),
  h('p',
    h('comment', 'link to project'),
    h('a', ['href'=>'https://github.com/naomik/htmlgen'], 'See htmlgen on Github')
  )
);

这是输出(实际输出没有空格)

<div id="wrapper">
  <h1 class="title">Hello, World</h1>
  <p>
    <!-- link to project -->
    <a href="https://github.com/naomik/htmlgen">See htmlgen on Github</a>
  </p>
</div>

这是非常新的,但在200行源,它已经非常强大。把它分叉并进行调整或给我一个带有建议的说明。

答案 1 :(得分:3)

PHP中标配了一个标准:http://php.net/manual/en/book.dom.php

下进行。

答案 2 :(得分:2)

编写自己的简单框架非常简单,是一种很棒的学习体验。你可以在一两个小时内实现这一点,事实上我只是在几周前才对最近的一个项目做过。

我建议的是:

  1. 使用占位符标记创建一个简单的.HTML模板,我使用语法%HTML_TITLE%,并且您的setTitle方法简单执行STR-REPLACE。
  2. JS,CSS
  3. 也是如此
  4. 由于您每次运行时都不会添加某些部分而不是您的generate()函数,因此使用%\ w +%正则表达式删除任何剩余的%%标记。

答案 3 :(得分:1)

我不知道这样的库,但是编写一个库很容易,例如,基于XMLWriter

那就是说,值得注意的是,php专门用于避免这样的事情。我建议使用模板引擎,甚至是用于html输出的'纯'php。