<?php
bool ob_start([ callback $output_callback [, int $chunk_size [, bool $erase ]]]);
/* 打开输出控制缓冲
 此函数将打开输出缓冲。当输出缓冲是活跃的时候,没有输出能从脚本送出(除http标头外),相反输 出的内容被存储在内部缓冲区中。

内部缓冲区的内容可以用 ob_get_contents() 函数复制到一个字符串变量中。 想要输出存储在内部缓冲区中的内容,可以使用 ob_end_flush() 函数。另外, 使用ob_end_clean() 函数会静默丢弃掉缓冲区的内容。
*/

void ob_clean(void)
/* 清空(擦掉)输出缓冲区
此函数不会销毁输出缓冲区,而像 ob_end_clean() 函数会销毁输出缓冲区。
*/

bool ob_end_clean(void)
/*  清空(擦除)缓冲区并关闭输出缓冲
此函数丢弃最顶层输出缓冲区的内容并关闭这个缓冲区。如果想要进一步处理缓冲区的内容,必须在ob_end_clean()之前调用ob_get_contents(),因为当调用ob_end_clean()时缓冲区内容将被丢弃。
*/

string ob_get_contents(void)
/* 只是得到输出缓冲区的内容,但不清除它。
此函数返回输出缓冲区的内容,或者如果输出缓冲区无效将返回FALSE
*/

int ob_get_length(void)
/*
此函数将返回输出缓中冲区内容的长度
返回输出缓冲区内容的长度;或者返回FALSE——如果没有起作用的缓冲区
*/

void ob_flush(void)
/*冲刷出(送出)输出缓冲区中的内容
 这个函数将送出缓冲区的内容(如果里边有内容的话)。如果想进一步处理缓冲区中的内容,必须在ob_flush()之前调用ob_get_contents() ,因为在调用ob_flush()之后缓冲区内容将被丢弃。

此函数不会销毁输出缓冲区,而像ob_end_flush() 函数会销毁缓冲区。
*/

bool ob_end_flush(void)

//*冲刷出(送出)输出缓冲区内容并关闭缓冲

这个函数将送出最顶层缓冲区的内容(如果里边有内容的话),并关闭缓冲区。如果想进一步处理缓冲区中的内容,必须在ob_end_flush()之前调用 ob_get_contents(),因为在调用ob_end_flush()后缓冲区内容被丢弃。
Note: 这个函数与ob_get_flush()相似,不同的是ob_get_flush()会把缓冲区中的内容作为字符串返回。*/

string ob_get_clean(void)
/* 得到当前缓冲区的内容并删除当前输出缓。
ob_get_clean() 实质上是一起执行了 ob_get_contents() 和 ob_end_clean()。
*/

string ob_get_flush(void)
/* 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。
 ob_get_flush() 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。

Note: 这个函数与ob_end_flush()相似,不同的是本函数还会以字符串形式返回缓冲区内容。
*/

int ob_get_level(void)
/*  返回输出缓冲机制的嵌套级别 */

void flush(void)
/*刷新输出缓冲
 刷新PHP程序的缓冲,而不论PHP执行在何种情况下(CGI ,web服务器等等)。该函数将当前为止程序的所有输出发送到用户的浏览器。

flush() 函数不会对服务器或客户端浏览器的缓存模式产生影响。因此,必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲。

个别web服务器程序,特别是Win32下的web服务器程序,在发送结果到浏览器之前,仍然会缓存脚本的输出,直到程序结束为止。

有些Apache的模块,比如mod_gzip,可能自己进行输出缓存,这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。

甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在接受到 </table> 标记之前,不会显示出整个表格。

一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。
*/

void ob_implicit_flush([int $flag = true])
/* 打开/关闭绝对刷送
ob_implicit_flush()将打开或关闭绝对(隐式)刷送。绝对(隐式)刷送将导致在每次输出调用后有一次刷送操作,以便不再需要对 flush() 的显式调用。
*/

string ob_gzhandler(string $buffer, int $mode)
/* 在ob_start中使用的用来压缩输出缓冲区中内容的回调函数。
ob_gzhandler()目的是用在ob_start()中作回调函数,以方便将gz 编码的数据发送到支持压缩页面的浏览器。在ob_gzhandler()真正发送压缩过的数据之前,该 函数会确定(判定)浏览器可以接受哪种类型内容编码("gzip","deflate",或者根本什么都不支持),然后 返回相应的输出。 所有可以发送正确头信息表明他自己可以接受压缩的网页的浏览器,都可以支持。 All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages. 如果一个浏览器不支持压缩过的页面,此函数返回FALSE。
ob_gzhandler() 需要 zlib 扩展。
*/

array ob_list_handlers(void)
/* 列出所有使用中的输出处理程序。
此函数将返回一个数组,数组元素是正在使用中输出处理程序名(如果存在的输出处理程序的话)。 如果启用了output_buffering 或者在 ob_start() 中创建了一个匿名函数,ob_list_handlers() 将返回 "default output handler"。
*/

as:
--------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$out = ob_get_contents();
file_put_contents('test.html', $out); //写入 test.html文件
ob_end_clean(); // 清空缓冲区的内容,并会销毁输出缓冲区,所以浏览器不会有数据显示
---------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$out = ob_get_contents();
file_put_contents('test.html', $out);
//此时也会把内容输送到浏览器,因为缓冲区有内容,最后会输出数据
------------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$out = ob_get_contents();
file_put_contents('test.html', $out); //写入 test.html文件
ob_clean(); // 清空缓冲区的内容,但不会销毁缓冲区,所以浏览器不会有数据显示
--------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);

$out = ob_get_contents();
file_put_contents('test.html', $out);
ob_flush(); //送出缓冲区的内容($out),即显示在浏览器中,同时清空缓冲区内容,但不会销毁缓冲区,所以在之前一定要用 ob_get_contents()获取里面的内容
----------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);

$out = ob_get_contents();
file_put_contents('test.html', $out);
ob_end_flush(); //送出缓冲区的内容($out),即显示在浏览器中,同时清空缓冲区内容,同时销毁缓冲区,所以在之前一定要用 ob_get_contents()获取里面的内容
----------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$str = ob_get_clean(); // 同时执行了 ob_get_contents(),ob_end_clean()
file_put_contents('test.html', $str);
----------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$str = ob_get_flush(); // 与ob_end_flush()类似,同时会以字符形式返回
file_put_contents('test.html', $str);
-----------------------
if(extension_loaded('zlib'))
{
    ob_start('ob_gzhandler'); //ob_gzhandler,压缩输出缓冲区中的内容的回调函数
}else
{
  ob_start();
}
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$str = ob_get_flush();
file_put_contents('test.html', $str);
ob_clean();
------------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$str = ob_get_contents();
file_put_contents('test.html', $str);
ob_implicit_flush(false); // 打开/关闭绝对刷送,绝对(隐式)刷送将导致在每次输出调用后有一次刷送操作,以便不再需要对 flush() 的显式调用,默认为 true
-----------------
ob_start();
echo date('Y-m-d H:i:s', time());
print_r($_SERVER);
$str = ob_get_contents();
file_put_contents('test.html', $str);
ob_end_clean();
print_r(ob_list_handlers());//列出所有使用中的输出处理程序,如:ob_gzhandler, default output handler, 是以数组的形式返回
?>

php ob_ 开头的相关函数的更多相关文章

  1. FILE文件操作

    http://www.jb51.net/article/37688.htm fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FI ...

  2. c语言中的文件流

    一.打开和关闭文件 #include int main( void ) { FILE* pReadFile = fopen( "E:\\mytest.txt", "r&q ...

  3. dedecms代码研究四

    partview php文件之前,我们像掉进沼泽一样,看到无尽的变量,数组元素,莫名其面的东西摆在我们面前.今天,我们继续艰难前行,想办法走出partview类的泥潭.上一篇,我们胡乱分析了partv ...

  4. 【Linux C中文函数手册】之 目录操作函数

    目录操作函数 1)closedir 关闭目录 相关函数: opendir表头文件: #include<sys/types.h> #include<dirent.h>定义函数: ...

  5. C语言文件操作函数

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * str ...

  6. (转)dedecms代码详解 很全面

    dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...

  7. C语言文件操作函数大全

    http://blog.csdn.net/mu0206mu/article/details/18980913 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include&l ...

  8. c语言操作文件函数大全

    fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const cha ...

  9. Linux C 文件操作函数(~上善止水~)

    翻翻笔记,整理一下 C 语言中的文件操作函数 ~~~~~~,多注意细节,maybe 细节决定成败~ 1. fopen /* fopen(打开文件) * * 相关函数 open,fclose * * 表 ...

随机推荐

  1. postgresql9.5 run 文件linux安装后配置成开机服务

    网上出现的比较多安装方法要么是源码安装,要么是yum安装,我发觉都要配置很多属性,比较麻烦,所以现在我在centos7长用 run文件来安装 http://get.enterprisedb.com/p ...

  2. [Node] 逃离回调地狱

    逃离Node回调地狱 Background : 在Node中,函数的返回结果大多利用回调的方式处理.如简单的判断文件是否存在并读取内容: var fs = require('fs'); fs.exis ...

  3. Jsp中的EL表达式

    EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} 可以通过page指令来设置EL表示是否启用,false是不启用,true是启用,默认是true &l ...

  4. xcode6下使用autolayout+sizeclass实践

    历史车轮滚滚向前,将autolayout配合sizeclass做布局的方式推上了主流,虽然有点晚,但最终还是进行了一次完整的实践,特此记录一下: 因为网上已经有很多博客介绍了autolayout配合s ...

  5. android 64 sd卡读写的操作

    package com.itheima.writesd; import java.io.File; import java.io.FileNotFoundException; import java. ...

  6. 使用like时left outer join和inner join的区别

    --select top 10000 * into #s from search set statistics time on set statistics io on select userId,c ...

  7. HDU2088JAVA

    Hot~~招聘——巴卡斯(杭州),亚信科技,壹晨仟阳(杭州) Box of Bricks Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: ...

  8. 给EditText的drawableRight属性的图片设置点击事件 分类: 学习笔记 android 2015-07-06 13:20 134人阅读 评论(0) 收藏

    这个方法是通用的,不仅仅适用于EditText,也适用于TextView.AutoCompleteTextView等控件. Google官方API并没有给出一个直接的方法用来设置右边图片的点击事件,所 ...

  9. JavaScript 应用开发 #4:切换任务的完成状态

    在勾选了任务项目左边的对号(复选框)以后,会将任务的状态标记为已完成,取消勾选的话,又会把任务的状态标记为未完成.所以, 我们需要一个可以切换任务完成状态的方法.在任务模型里面,表示任务状态的属性是 ...

  10. build/envsetup.sh内lunch解析

    ........ # 测试device是否存在且是一个目录 并且 只查找device目录4层以上的子目录,名字为vendorsetup.sh 并且 将命令执行的错误报告直接送往回收站 不显示在屏幕上 ...