ob_get_clean和ob_get_flush之间的区别

EEk*_*Eka 36 php output-buffering

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

我应该使用哪一个?

Arn*_*anc 102

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

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


She*_*hef 19

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

ob_get_flush另一方面,做所有事情ob_get_clean,但它也输出内容.


phi*_*hag 10

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

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


use*_*983 -6

直接尝试回答您的问题:

如果您希望在刷新缓冲区后再次开始输出缓冲,请使用 ob_get_clean,因为输出缓冲仍将准备就绪,而无需重新打开它。(请记住,只有在没有文本(甚至空白)回显到浏览器时才能使用此功能)。因此,对于更一般的用途,我所有的编程书籍都倾向于 ob_get_flush (因为每个脚本只有一个缓冲区)

  • `ob_get_clean` 结束输出缓冲。您需要再次将其重新打开。 (3认同)