当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。

以下示例程序旨在说明PHP中ob_end_flush()和ob_end_clean()的工作:

<?php 
  
// PHP code to illustrate the working of  
// ob_end_flush() and ob_end_clean() 
  
// ob_end_flush() 
ob_start(); 
echo "Hello Geek!"; //This will get printed. 
ob_end_flush(); 
  
// ob_end_clean()  
ob_start(); 
echo "Hi Geek!";  //This will not get printed. 
ob_end_clean(); 
  
?>

输出:

Hello Geek!

注意事项

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

参考:



相关用法


注:本文由纯净天空筛选整理自PronabM大神的英文原创作品 PHP | ob_end_flush(), ob_end_clean() Functions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。