在PHP中创建“模板解释器”的最佳方法

时间:2010-06-28 03:18:09

标签: php parsing caching file-get-contents preg-match-all

我正在托管一个用PHP编写的多区域解决方案,每个客户在一些HTML文件中都有自己的模板。现在我希望这些用户能够使用一些动态内容,但他们无法使用PHP。我想的是:

在HTML文件中,如果我把它放在:

<ul>[menu-list]</ul>

将输出如下内容:

<ul><li><a[...]>Home</a></li><li><a[...]>About</a></li>[...]</ul>

有没有比通过file_get_contents()preg_match_all()解析和缓存文件更好的方法呢?

我想创建大约20个条目,例如[menu-list],并且解析所有文件对我来说似乎都很昂贵。

我很感激任何建议。 = d

2 个答案:

答案 0 :(得分:1)

也许您应该考虑使用模板编译器而不是模板解释器。也就是说,不是每次加载页面执行整个替换过程,您只需在修改模板后执行替换。在模板编辑期间,成本应该可以忽略不计。要实现此编译,您可以选择在某些面包屑中“编译”以便可以向后移动,或者只需保存原始模板文件以供以后编辑。

或者,您可以考虑使用PHP变量命名约定并通过eval运行模板,但这会带来许多其他问题(如安全威胁),并且不会强烈建议。

答案 1 :(得分:0)

为什么不能使用Smarty和朋友?我不想写你的建议。