同时停止并返回输出缓冲

时间:2012-10-21 16:08:34

标签: php buffer

一旦我用ob_start()开始输出缓冲,我想在一个命令中停止输出缓冲并获取其内容(不将其发送到输出)。 I reviewed the available functions,我对每项功能的理解如下:

                 clear  return  send    stop
ob_clean          x         
ob_end_clean      x                      x
ob_end_flush                      x      x
ob_flush                          x 
ob_get_clean      x        x             x  // should be called ob_get_end_clean
ob_get_contents            x        
ob_get_flush               x      x 

据我所见,没有一个函数在停止缓冲后返回输出,所以当我想捕获函数的输出时,我必须分三步完成:

$output = ob_get_contents();
ob_end_clean();
return $output;

我是否遗漏了某些内容,或者是否有命令停止并一次性返回输出缓冲区?

2 个答案:

答案 0 :(得分:2)

the manual说出来:

  

ob_get_clean() 基本上同时执行ob_get_contents()ob_end_clean()

(由我突出)。与您的代码比较:

$output = ob_get_contents();
ob_end_clean();

您的商家信息一定错过了。

答案 1 :(得分:1)

这应该是一个,它甚至在描述中提到它:)

http://www.php.net/manual/en/function.ob-get-clean.php