PHP中的输入输出函数,PHP输入输出控制函数之flush和ob_flush

PHP输入输出控制函数是PHP初学者必须要掌握的一个知识点,很多人刚开始的时候都分不清到底flush和ob_flush有什么区别?为什么PHP要提供两个将缓冲区的内容输出的函数?许多人都建议,不管你理解不理解,都要两个一起调用,同时是要按这样的顺序一起调用。ob_flush();

flush();

结合官方文档和相关资料,ob_flush是发送用户(程序员)自定义的缓冲内的内容数据,而flush则是发送php自身的缓冲区的内容数据。这应该是最重要最大的区别了。不管你知道不知道,注意没注意,你可能在代码中调用了多次ob_start函数,其实这已经创建了多个输出缓冲区,这些缓冲区构成了一个缓冲区堆栈,最新创建的缓冲区就是当前缓冲区。每调用一次ob_flush就会将当前缓冲区的内容输出到上一层缓冲区,依次类推。最后才回到php缓冲区。所以上面的代码说要按顺序来调用,不然可能出现意想不到的结果。你可以简单理解成ob_flush 将缓冲内容发送到flush,而flush将缓冲内容发给客户端(浏览器),尽管实际上情况可能要比这复杂多了。

此外,ob_flush还受到php的配置选项output_buffering(默认是4069字符)的影响,如果缓冲区的内容没达到这个阀值,调用了ob_flush也没作用。而flush则不受此限制。另外这两个函数都不能影响到客户端浏览器的缓存,也不能影响到web服务器自身的缓存机制。

以上如有谬误,欢迎指正!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值