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