首页 / 帖子
为什么刚建立缓冲就delete, ob_get_clean的问题。

ob_start();
include DRUPAL_ROOT . '/' . $template_file;
return ob_get_clean();

ob_get_clean — Get current buffer contents and delete current output buffer
为什么刚生成一个buffer就要delete current output buffer,既然这样,貌似还不如直接输出呢,--- 突然发现有点绕啊 obstart了然后生成一个buffer然后为什么要end呢一直保持下去不好么 ? 



1个答案
老葛
发布于:2016-08-06 14:38

这个其实是为了得到输出的html,比如模板里面有很多html,这样就可以把html当作一个字符串处理,不然ob end下去就是把这些字符串直接输出到http响应结果里面,php得不到。

php得到有什么好处呢?

1. php可以修改里面内容。
2. 代码可以把这些输出缓冲,比如写到html文件里面下次直接用,或者放到cache里面。