PHP-php模板引擎,用正则匹配自定义标签
下面是html标签 其中$row为一数组,
<list form="$row" name="field">
姓名:{$field.name}<br/>
年龄:{$field.age}<br/>
《注:可能这里还有更多选项》
</list>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我以前也写过模板引擎,可以跟你说说,你这个应该分多个来匹配,
一、<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);
剩下的就是对括号里的子项进行替换了,这个其实简单,做模板引擎难的是要考虑到很多细节方面的问题,需要考虑得很全面,写模板引擎就像是写一门简单的解析语言一样,很费脑子的