2

一旦我开始使用 输出缓冲ob_start(),我想在一个命令中停止输出缓冲并获取其内容(而不将其发送到输出)。我回顾了可用的功能,我对每个功能的理解如下:

                 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 

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

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

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

4

2 回答 2

2

手册说:

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

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

$output = ob_get_contents();
ob_end_clean();

您的商家信息一定遗漏了什么。

于 2012-10-21T16:12:55.867 回答
1

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

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

于 2012-10-21T16:12:35.187 回答