📜  PHP | ob_end_flush(), ob_end_clean() 函数

📅  最后修改于: 2022-05-13 01:56:54.469000             🧑  作者: Mango

PHP | ob_end_flush(), ob_end_clean() 函数

在上一篇关于 ob_start() 的文章中,我们学习了如何启动输出缓冲区;现在我们需要结束输出缓冲并将整个 HTML 发送到浏览器进行渲染。我们可以借助函数 ob_end_flush() 和 ob_end_clean() 来做到这一点。

ob_end_flush()函数

句法:

bool ob_end_flush ()

参数:该函数不带任何参数。

返回类型:此函数将存储的 HTML 发送到浏览器并关闭输出缓冲。成功时返回 TRUE,否则返回 FALSE。

ob_end_clean()函数

句法:

bool ob_end_clean()

参数:该函数不带任何参数。

返回类型:此函数清除存储的 HTML 并关闭输出缓冲。成功时返回 TRUE,否则返回 FALSE。

下面的程序说明了 ob_end_flush() 和 ob_end_clean() 在PHP中的工作:


输出:

Hello Geek!

需要注意的要点

  • ob_end_flush() 或 ob_end_clean() 不是必需的功能,即如果开发人员使用 ob_start() 而不使用上述功能,网页似乎可以正常显示所有内容,但后面发生的事情远未优化。当PHP遇到 ob_start() 时,它会分配一个新的输出缓冲区并连接出现在它之后的每个 HTML,如果没有终止函数,那么在到达末尾时,存储的数据将作为默认操作发送到浏览器。开发人员可以通过在不需要时终止输出缓冲来创建优化的网页,从而保持全局堆栈清晰。
  • 提出了一个问题,如果我们使用 ob_end_clean() 来清理整个输出缓冲区,那么为什么还要使用输出缓冲。我们将 ob_end_clean() 与 ob_get_contents() 一起使用,它首先将内容作为字符串获取,然后清理并关闭输出缓冲区,这将清除全局堆栈并将整个内容保存在一个变量中以供进一步处理。

参考

  • http:// PHP.net/manual/en/函数.ob-end-flush。 PHP
  • http:// PHP.net/manual/en/函数.ob-end-clean。 PHP