模板引擎 - 正则表达式,DOMDocument和xpath还是其他什么?

时间:2016-02-01 08:24:34

标签: php regex xpath domdocument

我正在考虑通过创建模板引擎来使用PHP解析模板的最佳方法。模板可能包含HTML,CSS和JavaScript - 但没有PHP代码。我知道,那里有很多引擎......但我想尝试建立自己的引擎。

这是一个简单的模板文件示例。

$('.active ul:first').stop().slideDown('normal')

我已经阅读并看过有关如何使用正则表达式成功解析上述模板标签的示例。但是,阅读有关这些解决方案的评论使我认为创建简单的自定义模板引擎的正则表达式不是可行的方法。但我从未弄清楚原因。太慢了?

我对DOMDocument和Xpath不太熟悉。但是,如上例所示,这是解析HTML模板的更现代的方法吗?

我赞成一些澄清,让我选择正确的道路。

1 个答案:

答案 0 :(得分:0)

您正在创建自定义文档格式/语言,因此DOMDocument,Xpath或其他预定义解析器是不可能的。答案取决于您的要求。

如果您的模板语言只是用值替换模板标记,并且不允许嵌套,那么正则表达式将很容易实现并且运行良好。

如果您的模板有更复杂的内容,例如循环,函数调用或嵌套,您将需要使用词法分析器正式定义规则,例如Phlexy