ob网站教程

PHP ob缓存以及ob函数原理实例解析

时间: 2025-06-29 09:03:10 作者: ob网站教程

  ob是output buffering的简称,输出缓冲区,缓冲区是通过中的output_buffering变量控制的。其默认值是off,可设为为on来打开buffer。打来buffer后,即便程序中没有用ob函数,实际上代码也是使用了缓冲区的。另外,不管php.ini中output_buffering的设置,cli模式下的php始终默认是关闭的。为什么要是缓冲区呢?简单来说,高速的cpu早早处理完自己的数据,想通过线路传递给用户,但是线路太窄了,一下输送不过去。如果引入缓冲区,cpu可以将快速将生成的数据放入缓冲区,然后自己哪儿凉快儿哪儿呆着这歇着去了。缓冲区根据指令适时将数据输出。这个样就合理解决了高速cpu与低速I/O设备的矛盾了。

  ob的根本原则:如果ob缓存打开,则echo的数据首先放在ob缓存。如果是header信息,直接放置在程序缓存。当页面执行到最后,会把ob缓存的数据放到程序缓存,然后依次返回给浏览器。

  1)防止在浏览器有输出之后再使用setcookie()、header()或session_start()等发送头文件的函数造成的错误。其实这样的用法少用为好,养成良好的代码习惯。

  2)捕捉对一些不可获取的函数的输出,比如phpinfo()会输出一大堆的HTML,但是我们没办法用一个变量例如$info=phpinfo();来捕捉,这时候ob就管用了。

  3)对输出的内容做处理,例如进行gzip压缩,例如进行简繁转换,例如进行一些字符串替换。

  4)生成静态文件,实际上的意思就是捕捉整页的输出,然后存成文件。经常在生成HTML,或者整页缓存中使用。

  说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,能够正常的使用ob_end_flush()或flush()输出缓冲区的内容。

  说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。

  说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。

  5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。

  说明:这个函数发送输出缓冲区的内容(如果有的线、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区

  说明:使用过Perl的人都知道$=x的意义,这个字符串能打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()

  // 过测试,发现这个大小的底限是256个字符长。这在某种程度上预示着cache以后接收的内容都会源源不断的被发送出去。

  flush(); //这一部会使cache新增的内容被挤出去,显示到浏览器上

  说明:flush()是一个效率很高的函数,它很有用的功能就是刷新browser的cache.

  用以上的方法,就可以把不同用户的phpinfo信息存下来,这在以前恐怕没有很好的方法办到!其实上面就是将一些过程转化为函数的方法!

  所谓静态模版技术是通过某种方式,使得用户在client端得到的是由PHP产生的html页面。如果这个html页面不会再被更新,那么当另外的用户再次浏览此页面时,程序将不会再调用PHP和相关的数据库,对某些信息量比较大的网站,类似这种的技术带来的好处是非常巨大的。

  在本篇文章里小编给大家伙儿一起来分享了一篇关于php swoft框架实例用法,有需要的朋友们能学习参考下。

  验证码想必大家都有见到过吧,在本文为大家介绍下PHP怎么来实现变色验证码,感兴趣的朋友可以参考下

  这篇文章主要介绍了PHP面向对象类型约束用法,结合实例形式分析了php在面向对象程序设计中使用类型约束的原理与相关操作技巧,需要的朋友可以参考下

  这篇文章主要介绍了PHP手机号码及邮箱正则表达式实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  首先,我们来讨论包含文件漏洞,首先要问的是,什么才是远程文件包含漏洞?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这一个文件来源过滤不严,从而可去包含一个恶意文件,而我们大家可以构造这个恶意文件来达到邪恶的目的。

  裁减字符串函数有很多,但是根据中文裁减字符串的却很少,在本文将为大家介绍下使用php是怎么来实现的,感兴趣的朋友呢别错过

  在本篇文章里小编给大家理的是一篇关于php中cookie与session的区别点总结内容,有兴趣的朋友们可以借鉴学习下。

  本篇文章给大家伙儿一起来分享php上传功能集后缀名判断和随机命名,代码写的简单易懂,感兴趣的朋友快来参考下吧

  本篇文章是对jQuery+php实现ajax文件即时上传的办法来进行了详细的分析介绍,需要的朋友参考下

上一篇: 教你怎样样去运用ob函数输出静态html文件的办法
下一篇: SuperPIECE:疯抢、断货…LABUBU潮玩界的“破圈教科书”

猜你喜欢

手机扫一扫添加微信

18566464848