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信息从不同的用户,恐怕没有办法在过去做。事实上,它是将一些过程为函数的方式!