PHP中缓冲区的控制实现代码

我们在使用PHP使用页眉和setcookie两功能的过程中,这两个功能将发送一个文件的文件头信息的浏览器,但如果在使用这两个函数有输出(包括空气输出,如空间、输入和更改线)会提示错误提示以下信息:标题都准备发送!那么在输出情况下发送文件头信息的方式是什么呢在PHP 4中,有几个函数被添加到缓冲区控件中,这可以帮助我们解决许多问题。

1。相关功能简介:

1、刷新:输出缓冲区中的内容并删除缓冲区。

功能格式:同花顺()

说明:这个功能经常被使用,而且效率很高。

2、ob_start:打开输出缓冲区

函数的格式:ob_start虚空(void)

描述:当缓冲区被激活,所有非文件头信息从PHP程序将不会发送,而是保存在内部缓冲区,输出缓冲区的内容,你可以使用ob_end_flush()或()ob_end_clean输出缓冲区的内容。

3、ob_get_contents:返回的内部缓冲区的内容。

使用方法:字符串ob_get_contents(void)

描述:此函数返回当前缓冲区中的内容,如果没有激活输出缓冲区,则返回false。

4、ob_get_length:返回的内部缓冲区的长度。

使用方法:int ob_get_length(void)

描述:该函数返回当前缓冲区的长度;喜欢ob_get_contents,如果没有激活输出缓冲区。然后返回false。

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

使用方法:ob_end_flush虚空(void)

描述:此函数发送输出缓冲区的内容(如果有的话)。

6、ob_end_clean:删除内部缓冲区的内容,并关闭内部缓冲区

使用方法:ob_end_clean虚空(void)

说明:此函数不输出内部缓冲区的内容!

7、ob_implicit_flush:打开或关闭绝对刷新

使用方法:无效ob_implicit_flush({ int标志})

注:人用Perl知道意思|美元= X这个字符串可以打开/关闭缓冲,和ob_implicit_flush功能也是这样。默认情况是关闭缓冲区并打开绝对输出。

两。使用的例子:

起初,我说过缓冲控制的功能可以防止文件发送信息错误。下面是一个例子:

复制代码代码如下所示:
<
(ob_start) / /打开缓冲区;
;输出
头('location:gotourl。php); / /将浏览器重定向到gotourl.php
>


如果你删除ob_start,PHP将文件中的第四错误提示(错误信息如上图所示),但ob_start,会提示错误,原因是,当打开缓冲区字符不输出回波返回给浏览器,但保留在服务器,直到你使用冲洗或ob_end_flush将输出。这样就不会有任何文件输出错误!

下面是一个非常经典的用法:

例如,您使用设置信息来获取服务器和客户机,但此信息与客户机不同。如果我们要保存phpinfo()函数的输出,我们怎么办在没有缓冲控制之前,没有办法说出来,但是通过缓冲区的控制,我们可以很容易地解决它。

复制代码代码如下所示:
<
(ob_start) / /打开缓冲区;
(phpinfo); / /使用phpinfo函数
($信息= ob_get_contents); / /得到缓冲和分配至信息内容
文件大小= fopen('info .txt','w'); / /打开文件info.txt
文件(文件,为信息); / /写信息info.txt
Fclose ($file); / / close the file info.txt
>



用以上的方法,你可以保存phpinfo信息从不同的用户,恐怕没有办法在过去做。事实上,它是将一些过程为函数的方式!