PHP-php模板引擎,用正则匹配自定义标签

发布于 2017-01-07 15:39:24 字数 225 浏览 1149 评论 1

下面是html标签 其中$row为一数组,
<list form="$row" name="field">
姓名:{$field.name}<br/>
年龄:{$field.age}<br/>
《注:可能这里还有更多选项》
</list>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑾兮 2017-09-28 15:37:58

我以前也写过模板引擎,可以跟你说说,你这个应该分多个来匹配,
一、<list form="$row" name="field">,
二、</list>
三、{$field.age}

1)、preg_match_all('/<lists+form="($[a-z_]w+)"s+name="([a-z_]w+)">/i', $html, $matches);
2)、preg_match_all('/</(list)>/i', $html, $matches);
3)、preg_match_all('/{($[a-z_]w+).([w]+)}/i', $html, $matches);

剩下的就是对括号里的子项进行替换了,这个其实简单,做模板引擎难的是要考虑到很多细节方面的问题,需要考虑得很全面,写模板引擎就像是写一门简单的解析语言一样,很费脑子的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文