PHP 循环模板引擎 - 从头开始
对于一个小组项目,我正在尝试为PHP创建一个模板引擎,因为对语言经验不足的人可以在他们的HTML中使用{name}这样的标签,PHP会用数组中的预定义变量替换该标签。以及支持循环。
这远远超出了项目的预期,但是由于我有PHP的经验,我认为让我忙碌将是一个很好的挑战!
我的主要问题是,我如何做解析器的循环部分,这是实现这种系统的最佳方式吗?在您推荐现有的模板系统之前,我更愿意自己创建它以获得经验,因为我们项目中的所有内容都必须是我们自己的。
目前,基本的解析是用正则表达式和preg_replace_callback完成的,它会检查$data[name]是否存在,以及它是否确实替换了它。
我试图以各种不同的方式进行循环,但不确定我是否在正确的轨道上!
如果为解析引擎提供的数据,则示例为:
Array
(
[title] => The Title
[subtitle] => Subtitle
[footer] => Foot
[people] => Array
(
[0] => Array
(
[name] => Steve
[surname] => Johnson
)
[1] => Array
(
[name] => James
[surname] => Johnson
)
[2] => Array
(
[name] => josh
[surname] => Smith
)
)
[page] => Home
)
它解析的页面是这样的:
<html>
<title>{title}</title>
<body>
<h1>{subtitle}</h1>
{LOOP:people}
<b>{name}</b> {surname}<br />
{ENDLOOP:people}
<br /><br />
<i>{footer}</i>
</body>
</html>
它将产生类似于以下内容的内容:
<html>
<title>The Title</title>
<body>
<h1>Subtitle</h1>
<b>Steve</b> Johnson<br />
<b>James</b> Johnson<br />
<b>Josh</b> Smith<br />
<br /><br />
<i>Foot</i>
</body>
</html>
您的时间非常感激!
非常感谢,
附言:我完全不同意,因为我希望创建类似于已经存在的经验的东西,所以我的格式良好且易于理解的问题被投票否决。
P.P.S.似乎这个话题有大量的意见传播,请不要因为投票给人们有不同的意见而投票。每个人都有权拥有自己的权利!