您的位置 首页 php

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

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

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

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

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

文章来源:智云一二三科技

文章标题:PHP输入输出控制函数之flush和ob_flush

文章地址:https://www.zhihuclub.com/153173.shtml

关于作者: 智云科技

热门文章

网站地图