php之输出缓存ob
来源:互联网 发布:java定义二维数组 编辑:程序博客网 时间:2024/06/05 18:04
php之输出缓存ob(output buffering)
1、ob缩写
ob,输出缓冲区,是output buffering的简称。
2、ob原理
如果ob缓存打开,则echo的数据首先放在ob缓存。如果是header信息,直接放在程序缓存。当页面执行到最后,会把ob缓存的数据放到程序缓存,然后依次返回给浏览器。
3、ob作用
1)防止在浏览器有输出之后再使用setcookie()、header()或session_start()等发送头文件的函数造成的错误。
2)捕捉对一些不可获取的函数的输出,比如phpinfo()会输出一大堆的HTML,但是我们无法用一个变量例如$info=phpinfo();来捕捉,这时候ob就管用了。
3)对输出的内容进行处理,例如进行gzip压缩,例如进行简繁转换,例如进行一些字符串替换。
4)生成静态文件,其实就是捕捉整页的输出,然后存成文件。经常在生成HTML,或者整页缓存中使用。
4、ob系列函数
ob_start(); //打开一个输出缓冲区,所有的输出信息不再直接发送到浏览器,而是 保存在输出缓冲区里面。
ob_clean(); //删除内部缓冲区的内容,不关闭缓冲区(不输出)。
ob_end_clean(); //删除内部缓冲区的内容,关闭缓冲区(不输出)。
ob_get_clean(); //返回内部缓冲区的内容,关闭缓冲区。相当于执行 ob_get_contents() and ob_end_clean()
ob_flush(); //发送内部缓冲区的内容到浏览器,删除缓冲区的内容,不关闭缓冲区。
ob_end_flush(); //发送内部缓冲区的内容到浏览器,删除缓冲区的内容,关闭缓冲区。
ob_get_flush(); //返回内部缓冲区的内容,并关闭缓冲区,再释放缓冲区的内容。相 当于ob_end_flush()并返回缓冲区内容。
flush(); //将ob_flush释放出来的内容,以及不在PHP缓冲区中的内容,全部输 出至浏览器;刷新内部缓冲区的内容,并输出。
ob_get_contents(); //返回缓冲区的内容,不输出。
ob_get_length(); //返回内部缓冲区的长度,如果缓冲区未被激活,该函数返回FALSE。
ob_get_level(); //Return the nesting level of the output buffering mechanism.
ob_get_status(); //Get status of output buffers.
ob_implicit_flush(); //打开或关闭绝对刷新,默认为关闭,打开后ob_implicit_flush(true), 所谓绝对刷新,即当有输出语句(e.g: echo)被执行时,便把输出直接 发送到浏览器,而不再需要调用flush()或等到脚本结束时才输出。
注意:这些函数的行为受php_ini设置的影响:
output_buffering //该值为ON时,将在所有脚本中使用输出控制;若该值为一个数字, 则代表缓冲区的最大字节限制,当缓存内容达到该上限时将会自动向 浏览器输出当前的缓冲区里的内容。
output_handler //该选项可将脚本所有的输出,重定向到一个函数。例如,将 output_handler 设置为 mb_output_handler() 时,字符的编码将被 修改为指定的编码。设置的任何处理函数,将自动的处理输出缓冲。
implicit_flush //作用同ob_implicit_flush,默认为Off。
- php之输出缓存ob
- PHP输出缓存ob系列函数详解
- PHP的OB缓存
- php ob缓存
- php ob缓存
- PHP ob系列函数(缓存输出函数)详解
- php的ob缓存详解
- php中ob缓存机制
- php静态缓存 ob局部缓存
- PHP缓存技术OB系统函数
- PHP缓存技术OB系统函数
- PHP缓存技术OB系统函数
- PHP缓存技术OB系统函数
- php页面缓存ob系列函数介绍
- php真静态缓存 ob系统函数
- PHP缓存技术OB系统函数
- php-ob缓存实现页面静态化
- php输出缓冲区与ob函数使用
- Java问题排查常用linux命令
- 指针的学习
- error:LNK2005 已经在*.obj中定义
- appStore检查版本更新与从app里跳到appstore评论页面
- Codeforces 599 C. Day at the Beach
- php之输出缓存ob
- JVM调优
- 51nod 1038 矩阵取数问题 (DP)
- hibernate学习总结之子类关系映射
- 数据结构之树_Tree
- HDU 2586 最小公共祖先
- Python之自动化修改软件包版本号&日期
- Balanced Binary Tree
- rabbitMq:DIAGNOSTICS