2014-03-13 32 views
1

是否有任何命令获取输出并清除缓冲区而不是将其关闭?一个命令获取输出缓冲区并在PHP中清除它?

例如。

ob_start(); 
include 'first_page.php'; 
$first_page = ob_get_clean(); 
ob_start(); 
include 'second_page.php'; 
$second_page = ob_get_clean(); 
ob_start(); 
.... 

有没有可用的函数,所以我不必每次都打开输出缓冲?

+1

没有,但您的系统上执行两个指令这样的开销? ob_get_contents()后面跟着ob_clean() –

+0

@MarkBaker完全没有,但是如果我忘记清理缓冲区,它肯定会使代码更干净,更不容易出错。 – tgun926

+1

创建您自己的函数'ob_get_clean_dontclose(){$ result = ob_get_contents(); ob_clean();返回$ result; }'那么就调用它 –

回答

0

我知道这是一个老问题,但我一直在寻找这个问题的答案,并希望根据这里发布的评论发布答案。


它看起来像答案是没有,没有一个统一的命令来获取输出缓冲区,并删除它,而不将其关闭。然而,而不是反复启动一个新的缓冲区,你可以只删除当前缓冲区ob_clean()ob_get_contents()

通话之间。例如:

ob_start(); 
include 'first_page.php'; 
$first_page = ob_get_contents(); 
ob_clean(); 
include 'second_page.php'; 
$second_page = ob_get_contents(); 
ob_end_clean();