loader.php view方法的请教
在看Loader.php view方法的时候,看到这里,没有看懂if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE)
{
echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($_ci_path))));
}
else
{
include($_ci_path); // include() vs include_once() allows for multiple views with the same name
}
前面的if是把短标签做了个替换,他先把$_ci_path这个文件通过file_get_contents读出来,然后经过短标签的变换,然后echo出来,于是就到了缓存里了(前面有ob-start)
else这里,他就include了一下,这样这个view的内容就到缓存里了?是么?
如果不是,那后面的那句代码是把这个页面的内容读到缓存里的?
如果是,到底是什么回事?能否给我稍微介绍下?include不是仅仅include这个文件么?按我的理解,要到缓存里,应该是echo才能进去吧。
请指教,谢谢! 请求hex老大给予解答,谢谢! 注意 include 是把 html 一起 include 进来了,当然就会被输出到浏览器。
只有 php 代码才不会输出到浏览器。
输出到浏览器的都会进入 buffer 回复 3# Hex
把这个地址打印了下$_ci_path,是view里面的文件,包含html等,如果hex所说,应该是html直接进缓存了
以前好像没遇到过这样的情况,长知识了。谢谢hex!
页:
[1]