ob_flush引出的函数 做那个导出藏品时内存满了用到这个知识点

ob_flush():这个函数将送出缓冲的内容,如果想进一步处理缓冲区内容的话需要在ob_flush()之前调用ob_get_content(),因为ob_flush()之后缓冲区的内容就会被丢弃,而不是将缓冲区销毁。ob_end_flush()会将缓冲区销毁和ob_end_clean()一样。

那什么是缓冲呢,缓冲就是内存地址的空间。PHP的缓冲默认是开启的,在PHP.ini中ouotput_buffering配置,缓冲区大小是4096k,当PHP执行echo 或者是 print时,是将数据先写入PHP的buffer中,当buffer写满,会将这些数据通过tcp输出到浏览器显示。你可以通过ob_start()手动激活output_buffer机制,使得即便超过1kb也不会真通过tcp传递给浏览器buffer,因为ob_start()已经将PHP buffer设置的足够大,只有知道脚本结束或者使用ob_end_flush()函数,才会将数据传送给浏览器。

 

具体流程:echo/print --- php buffer --- tcp buffer(系统buffer) --- 浏览器buffer --- 显示器显示

 

论flush()和ob_flush()的区别

没有开启缓存:

flush():在没有开启缓冲区时,脚本输出的内容都在服务器端处于等待输出的状态 ,flush()可以将等待输出的内容立即发送到浏览器

开启缓存:

flush():在开启缓存时使用flush() ,不会像浏览器发送任何数据,因为数据都在缓冲区中没有处于等待输出的状态的数据。

ob_flush() :通过上面的定义我们得知,它就是将缓冲的内容送出来,也就是将数据变成处于等待输出的状态,但是并不会发送到客户端,然后使用flush()就能将数据在浏览器上输出

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值