对PHP中ob函数缓冲机制的深入理解
对于新推出的PHP程序员,PHP缓冲几乎是透明的。在他们的心目中,一个回声print_r函数,将数据嗖的一声飞到浏览器显示。我一直以为的那么简单。事实上,在科技世界,总是从简单到复杂,也许那些技术开发商开始为你和我独自一人,但在残酷的现实面前,不得不调整策略以提高机器运行效率,最后想到了那些让我们赞美的想法。
当涉及缓冲时,也就是缓冲区,我们必须与缓存进行比较。简单地比较定义是没有意义的,缓存解决了如何快速查找和利用数据,节省CPU消耗的问题,而缓存解决了高速CPU和低速I/O设备之间不匹配的问题。
另一个主角在这篇文章中,OB功能,OB是output_buffering.since OB功能是一个PHP扩展功能,然后对OB功能的主要操作是PHP缓存。
在完成这篇文章的两个主要人物之后,我们必须回到开始的主题。如何从回波print_r函数输出数据到浏览器,让用户看到了吗实际的课程是这样的:
复制代码代码如下所示:
回声,print_r = > PHP output_buffering = > >浏览器缓存服务器缓存= = >浏览器显示
我们可以清楚地看到,从回声,print_r函数来发送信息,客户端已经经历了两个缓冲区,缓冲区和一个浏览器也已经在客户端的经验。在这篇文章中主要讨论的是PHP output_buffering。
在不使用OB功能时使用缓冲区
大多数时候,我们的代码根本不使用ob函数,它们使用缓冲区吗这取决于PHP设置。缓冲区是由output_buffering变量在php.ini.the默认值控制是关闭的,可以被设置为打开缓冲。缓冲液后,即使OB功能是不能用在程序代码中实际使用的缓冲区。此外,无论output_buffering在php.ini的设置,在CLI模式PHP总是关闭的默认。
为什么是缓冲区简单来说,高速CPU完成数据的早期,想把线给用户,但是线太窄,和传输不过去。如果缓冲区,CPU可以快速生成的数据到缓冲区中,然后他们的孩子哪里凉快哪里呆下来。缓冲区将数据输出时间根据指令。这是一个合理的解决矛盾的高速CPU和低速我 / O设备。
缓冲区数据的输出是什么时候1,当缓冲区满时,缓冲区是缓冲区的大小,到达限制将自动输出内容。2,脚本完成。许多小程序没有太多的输出,它们不能等到缓冲区满了。
使用ob函数时缓冲区的使用
复制代码代码如下所示:
ob_start()
打开输出缓冲区。这个功能是我们大部分的功能之一。当output_buffering设置或X K,这个功能是没有这么多,打开输出缓冲区,但它是更好地扩大输出缓冲量大。当然,的条件下,output_buffering设置对了,ob_start将发挥开放buffer.ob_start作用()也可以传递一个可选的参数output_callback功能,并详细地解释了官方PHP手册。
复制代码代码如下所示:
ob_get_contents()
只需获取输出缓冲区的内容,但不要清除它。
复制代码代码如下所示:
ob_end_clean()和()ob_clean
这两个函数的区别从字面意义。前清除缓冲区的内容并关闭它,而后者只做清理工作。需要注意的是,使用这两个功能重要,和功能如回声,print_r,和其他功能不输出内容。
我试图打印出ob_get_contents内容(print_r)通过ob_clean,后来被称为缓冲区(缓冲区)避免影响缓冲区的操作后,失败了很多次。当你仔细想想,print_r的内容是缓冲再写,然后ob_clean()操作完成,自然没有输出,ob_flush()函数叫做ob_clean操作前达到预期效果。
复制代码代码如下所示:
ob_flush()和冲洗()
ob_flush()发送缓冲区的内容和抛弃的内容。所以最好使用ob_get_contents()这个函数会在缓冲区的内容。同花顺()刷服务器端缓存和发送给客户。所以,从这个过程中,你应该打电话给ob_flush()先打电话冲水功能。
此外,它解释了下Apache缓冲液冲洗工作原理():Apache模块的SAPI下冲洗将间接通过调用成员函数指针sapi_module冲洗Apache的API的使用():它刷新了Apache的输出缓冲区。当然,Apache的其他模块,如mod_gzip,可能会改变这种行为的结果,并可输出缓冲器对自己,从而产生的冲洗结果()功能,并不会立即发送到客户端浏览器。
复制代码代码如下所示:
ob_get_clean()
如果你有ob_get_contents擅长()和()ob_clean,功能也比较简单,因为它是一个结合前两。它主要是为了获取当前缓冲区的内容和删除当前输出缓冲器。
有很多OB功能,但是大多数用法简单易懂,你可以参考PHP手册,会有详细的解释。当然,还会有新的问题、新的问题和新的解决办法。
以上内容是了解php中的ob函数缓冲机制,希望以后能对您有所帮助。