php中flush()和ob_flush(),ob_end_flush()用法与区别

本文章来给大家总结介绍关于php中flush()和ob_flush(),ob_end_flush()用法与区别,有需要了解的朋友可进入参考参考。

首先来说说buffer,它是一个内存地址空间,为4096(1kb)【在php.ini配置文件中找到output_buffering配 置】,php有php output_buffering机制,php代码在执行的时候,并不是立即将内容输出,而是想将echo/print内容输出到buffer,buffer满的时候才会将数据交给系统内核交由tcp传给浏览器显示,当开启php php output_buffering机制(默认是开启的,可以通过ob_start()函数开启)后,只有当php buffer中的数据达到了设置值,才会将buffer中 的数据发送给浏览器,但是浏览器也是有缓存的,一些版本的浏览当数据达到256字节的时候才输出内容,

ob_start()函数:打开输出缓冲区.

函数格式 void ob_start(void) 

说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区,为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

Flush:刷新缓冲区的内容,输出。

函数格式:flush() 

说明:这个函数经常使用,效率很高。

ob_get_contents:返回内部缓冲区的内容。

函数格式:string ob_get_contents(void) 

说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE.

ob_get_length:返回内部缓冲区的长度。

函数格式:int ob_get_length(void) 

说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活,则返回 FALSE.

ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区

函数格式:void ob_end_clean(void) 

说明:这个函数不会输出内部缓冲区的内容而是把它删除

ob_end_flush:发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区

函数格式:void ob_end_flush(void) 

说明:这个函数发送输出缓冲区的内容(如果有的话)

ob_implicit_flush:打开或关闭绝对刷新

函数格式:void ob_implicit_flush ([int flag]) 

说明:默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()

flush()可以将等待输出的内容立即发送到客户端,而ob_flush()只有等待到buffer满的时候才输出,可以通过下面一个简单的php实例来验证下,实例代码如下:

  1. <?php 
  2.  //这是防止浏览器的缓存 
  3.  echo str_repeat(" ",1024); 
  4.  for($i=0;$i<5;$i++){ 
  5.   echo $i;  
  6.   sleep(1); 
  7.   flush();//会每隔1s输出一个数字,但是使用ob_flush()会等待5s一起输出 
  8.  } 
  9. ?> 
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » php中flush()和ob_flush(),ob_end_flush()用法与区别

58 评论

  1. order isotretinoin 10mg pills buy zithromax sale azithromycin 250mg for sale

  2. buy isotretinoin for sale stromectol online side effects of ivermectin

  3. order chloroquine 250mg for sale cenforce 50mg sale order baricitinib 2mg generic

  4. buy zyprexa 10mg pills bystolic price buy valsartan 160mg without prescription

  5. buy omeprazole online cheap casino real money hollywood casino online real money

  6. order cialis 40mg without prescription cost viagra purchase sildenafil

  7. order sildenafil 50mg pill cialis 10mg drug tadalafil generic name

  8. best online poker sites for real money free roulette online buy cialis online cheap

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡