php ob库

一、什么是ob

ob的全称(output_buffering )输出缓冲区,输出缓冲区通过php.ini中的output_buffering变量控制的,这个默认值是off,可以设置为on来打开buffer。打开buffer后。即便程序中没有用ob函数,实际上代码也是使用缓冲区。另外,不管PHP.ini中output_bufering 的设置,cli模式下的PHP始终默认是关闭。引入缓冲区,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或整个页缓存中使用;

1、ob_start:    函数一般主要是用来开启缓存,注意使用ob_start之前不能输出空格、字符等。

2、ob_get_contents函数主要获取缓存中的内容以字符,注意这个函数必须在ob_end_clean函数之前调用,否则取不动缓存内容。

3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功true 失败false;

4、flush:刷新缓存区内容,输出。  这个函数经常使用效率高

5、ob_get_length:返回内容缓存区的长度 函数返回当前缓冲区的长度&ob_get_contents一样,如果输出缓冲区没激活,返回false

6、ob_end_flush:发送内部缓存区的内容到了浏览器,并且关闭输出缓冲区 此函数发送输出缓冲区的内容

7、ob_end_clean:删除内部缓冲区的内容,并关闭内部缓冲区 此函数不会输出内容不输出内部缓冲区的内容而是删除。

8、ob_implicit_flush :打开或关闭绝对刷新 ob_implicit_flush([int flag]) 用过perl的人都知道$|=x的意思,这个字符可以打开|关闭缓冲区,而ob_imlicit_flush函数页和那个一样,默认是关闭缓冲区,打开绝对输出后,每个脚本输出直接发送到浏览器,不需要调用flush()

明日待续····

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值