2010-03-30 54 views
3

我试图找到一个工具,我可以用它来编程生成标记(非irl字)。这是我试图用伪代码完成的一个例子...PHP - 寻找一个HTML生成器/管理器

$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(); 

这是什么最好的工具?

回答

2

编写你自己的简单框架非常简单,并且是一个很好的学习体验。你可以在一两个小时内实现它,实际上我只是在几个星期前为最近的一个项目做的。

我建议是:

  1. 创建占位符标记一个简单的.HTML模板,我使用语法%HTML_TITLE%和你的方法的setTitle简单做一个STR-更换。
  2. 同样适用于JS,CSS
  3. 由于您可能不会每次都添加某些部分,它比generate()函数重要,您可以使用%\ w +%正则表达式删除任何剩余的%%标记。
+0

我正在构建一个基于kohana级联文件系统的框架。我想将许多框架库(布局,数据库持久性,输入等等)委托给知名的成熟库。感谢您的好建议! – 2010-03-30 18:33:16

+0

+1通过做学习。 – 2010-03-30 18:56:51

1

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

这就是说,值得注意的是,PHP是专门设计来避免这样的事情。我会建议一个模板引擎,甚至是用于html输出的“纯”php。

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线源,它已经非常强大。将它叉起来并进行调整,或者给我发一条带有建议的笔记。

+0

喜欢那个subInject方法! – 2016-03-18 14:50:42