ob_get_clean和ob_get_flush之间的区别

时间:2011-09-11 16:48:10

标签: php output-buffering

他们似乎都做了同样的事情:将输出缓冲区内容返回给你并在之后删除它。

我应该使用哪一个?

4 个答案:

答案 0 :(得分:99)

ob_get_clean()删除缓冲区(不打印),并返回其内容。

ob_get_flush()打印缓冲区,删除缓冲区并返回其内容。

答案 1 :(得分:19)

ob_get_clean将只返回缓冲区的内容并将其分配给您想要的任何变量,但它不会输出任何内容。

另一方面,

ob_get_flush执行ob_get_clean所做的一切,但也会输出内容。

答案 2 :(得分:9)

两个函数都清除输出缓冲区,关闭输出缓冲区,并返回前一个缓冲区值。

但是,ob_get_flush首先将当前缓冲区发送到客户端,而ob_get_clean只是丢弃它。

答案 3 :(得分:-8)

直接尝试回答您的问题:

如果您希望在刷新缓冲区后再次开始输出缓冲 ,则使用ob_get_clean作为输出缓冲仍然准备好,而不必将其重新打开。 (请记住,只有在没有文本,甚至是空格回显到浏览器的情况下才能使用此功能)。 因此,对于更一般的用途,我的所有编程书籍都倾向于ob_get_flush(每个大多数脚本只有一个缓冲区)