php模板引擎是如何解析循环结构的?给一个简单的例子吧

 我来答
lsc_19870611
推荐于2016-03-29
知道答主
回答量:5
采纳率:0%
帮助的人:4.9万
展开全部
如果你用的是框架里标识的循环标签,那他们会在模板渲染的时候将这个循环标签转换为php原生的for或foreach标签以便再次读取。

$content = preg_replace(array('/\{\$(\w+)\}/','/{:(\w+)(\([\S+\,?]*\))}/'),array('<?php echo \$\1;?>','<?php \1\2;?>'),$content);

已经是php原生的循环代码再解析的时候就直接执行该文件就出页面了。

ob_start();
ob_implicit_flush(0);

include $file;
$content = ob_get_clean();
echo $content;
追问
没用模板引擎,只是想知道一些简单的例子,比如说CI里面的一段代码

类似这样的模板,它是如何做到解析的?给个思路也可以
追答
哦,我没用过CI,不过渲染模板的道理应该都是一样的。
只要把

变成

就可以了,至于具体的操作流程跟上述方法差不多,只要换一个正则表达式即可。
首先获得你的模板内容,将其赋值给$content
$content = str_replace('','',$content);
这样一来php再次执行代码的时候就能够读取php源码并执行他们,进而输出内容。

具体步骤可以看:http://a605739030.blog.163.com/blog/static/162072117201110284315624/
这是我之前研究时看过的,希望对你有帮助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式