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

创建“一个”的最佳方法;模板解释器";在PHP中,php,parsing,caching,file-get-contents,preg-match-all,Php,Parsing,Caching,File Get Contents,Preg Match All,我正在托管一个用PHP编写的多区域解决方案,每个客户在一些HTML文件中都有自己的模板。现在我希望这些用户能够使用一些动态内容块,但他们不能使用PHP。我的想法是: <ul><li><a[...]>Home</a></li><li><a[...]>About</a></li>[...]</ul> 在HTML文件中,如果我放置以下内容: <ul>[menu-list

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

<ul><li><a[...]>Home</a></li><li><a[...]>About</a></li>[...]</ul>
在HTML文件中,如果我放置以下内容:

<ul>[menu-list]</ul>
    [菜单列表]
将输出如下内容:

<ul><li><a[...]>Home</a></li><li><a[...]>About</a></li>[...]</ul>
  • 主页
  • 关于
  • […]
有没有比通过
file\u get\u contents()
preg\u match\u all()继续解析和缓存文件更好的方法

我想创建大约20个条目,比如
[菜单列表]
,对我来说,为所有条目解析每个文件似乎都很昂贵


如果有任何建议,我将不胜感激=也许你应该考虑使用模板编译器代替模板解释器。也就是说,不必每次加载页面时都执行整个替换过程,只需在修改模板后执行替换即可。在模板编辑过程中,成本应该可以忽略不计。要实现这种编译,您可以选择在一些面包屑中“编译”,这样您就可以往回走,或者只需保存原始模板文件以供以后编辑


可选地,您可以考虑使用PHP变量命名约定,并通过<代码> EVA运行模板,但这会带来许多其他问题(如安全威胁),并且不被强烈推荐。

< P>也许您应该考虑使用模板编译器而不是模板解释器。也就是说,不必每次加载页面时都执行整个替换过程,只需在修改模板后执行替换即可。在模板编辑过程中,成本应该可以忽略不计。要实现这种编译,您可以选择在一些面包屑中“编译”,这样您就可以往回走,或者只需保存原始模板文件以供以后编辑


可选地,您可以考虑使用PHP变量命名约定,并通过<代码> EVA运行模板,但这会带来许多其他问题(如安全威胁),并且不被强烈推荐。

为什么您不能使用和朋友?我不想写你建议我自己写的东西。

为什么你不能使用和朋友?我不想写你建议我自己写的东西。

我遗漏了什么吗?为什么这个措辞恰当、深思熟虑的问题会遭到否决。。。特别是当一个新用户问我这个问题时,我是否遗漏了什么?为什么这个措辞恰当、深思熟虑的问题会遭到否决。。。特别是当新用户询问时?+1。这是一个好主意(尤其是编译部分),但是我会采取一种稍微不同的方法来保存文件以供编辑。我会在每次更改时重新生成编译后的文件,这会影响该文件,但我也会保持整个原始文件完好无损。很好。我会做这样的事。这是一个好主意(尤其是编译部分),但是我会采取一种稍微不同的方法来保存文件以供编辑。我会在每次更改时重新生成编译后的文件,这会影响该文件,但我也会保持整个原始文件完好无损。很好。我会这样做。Smarty似乎是一个很棒的工具,但我无法培训人员,甚至无法在
标记中要求知识。【菜单列表】如何比Smarty的标记更好?Smarty似乎是一个很棒的工具,但我无法培训人员,甚至无法在
标记中要求知识。【菜单列表】如何比smarty的标签更好?