加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

PHP的ob缓存怎么用?一文带你搞明白ob函数原理

发布时间:2022-04-18 14:16:10 所属栏目:语言 来源:互联网
导读:很多朋友在学习PHP时,对于ob缓存不是很理解,对此,这篇文章就给大家介绍一下ob缓存,包括ob缓存的基本原则和作用,以及ob相关函数的介绍,希望对大家学习有帮助。 ob缓存介绍 ob是output buffering的简称,输出缓冲区,缓冲区是通过php.ini中的output_buff
      很多朋友在学习PHP时,对于ob缓存不是很理解,对此,这篇文章就给大家介绍一下ob缓存,包括ob缓存的基本原则和作用,以及ob相关函数的介绍,希望对大家学习有帮助。
 
       ob缓存介绍
 
       ob是output buffering的简称,输出缓冲区,缓冲区是通过php.ini中的output_buffering变量控制的。其默认值是off,可以设置为on来打开buffer。打来buffer后,即便程序中没有用ob函数,实际上代码也是使用了缓冲区的。另外,不管php.ini中output_buffering的设置,cli模式下的php始终默认是关闭的。为什么要是缓冲区呢?简单来说,高速的cpu早早处理完自己的数据,想通过线路传递给用户,但是线路太窄了,一下输送不过去。如果引入缓冲区,cpu可以将快速将生成的数据放入缓冲区,然后自己哪儿凉快儿哪儿呆着这歇着去了。缓冲区根据指令适时将数据输出。这个样就合理解决了高速cpu与低速I/O设备的矛盾了。
 
       ob的基本原则:如果ob缓存打开,则echo的数据首先放在ob缓存。如果是header信息,直接放在程序缓存。当页面执行到最后,会把ob缓存的数据放到程序缓存,然后依次返回给浏览器。
 
       ob的基本作用:
 
       1)防止在浏览器有输出之后再使用setcookie()、header()或session_start()等发送头文件的函数造成的错误。其实这样的用法少用为好,养成良好的代码习惯。
       2)捕捉对一些不可获取的函数的输出,比如phpinfo()会输出一大堆的HTML,但是我们无法用一个变量例如$info=phpinfo();来捕捉,这时候ob就管用了。
       3)对输出的内容进行处理,例如进行gzip压缩,例如进行简繁转换,例如进行一些字符串替换。
       4)生成静态文件,其实就是捕捉整页的输出,然后存成文件。经常在生成HTML,或者整页缓存中使用。
 
       ob相关函数详解
 
       1、Flush:刷新缓冲区的内容,输出。
       函数格式:flush()
 
       说明:这个函数经常使用,效率很高。
       2、ob_start :打开输出缓冲区
       函数格式:void ob_start(void)
 
       说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
       3 、ob_get_contents :返回内部缓冲区的内容。
       使用方法:string ob_get_contents(void)
 
       说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
       4、 ob_implicit_flush:打开或关闭绝对刷新
       使用方法:void ob_implicit_flush ([int flag])
 
       说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读