2018年04月6日网站服务器迁移完成……

php中有关缓冲内置函数

php 苏 demo 1523℃ 0评论

PHP输出缓冲(Output Buffering)是指PHP把所有即将要发送到到浏览器中的内容暂时放在缓冲区中,在整个PHP程序执行完后再把缓存区的内容输出。

PHP中有关缓冲的内置函数,几乎都以 ob_  开头。另外,在PHP的配置文件php.ini中,有output buffering指令,一般是关闭的,我们用到它的时候再手动开启(如果开启,则在所有php程序中都会执行缓冲)。

我们在什么时候用到缓冲呢?一般是在设置session和cookie的时候用到,因为它们之前不能有输出,所有要启用输出缓冲机制。

一、启用、结束缓冲功能—— ob_start() 、 ob_end_flush()

在外面要用到缓冲的时候,可一通过ob_start()开启缓冲,然后结束缓冲,用ob_end_flush()。几个常用的函数:

ob_flush() ——  提前发送缓冲,将ob_start()与ob_flush()之间的输出提前(在整个php程序结束之前)发送到浏览器中。

ob_clean() —— 清除缓存,在ob_start()与ob_clean()之间的输出缓冲将不会被发送到浏览器显示出来。

ob_end_clean() ——  和ob_clean()一样清除之前的缓冲,区别之处在于:它会结束整个缓冲功能,所有在它之后的输出内容不会被放入缓冲区中。

ob_start()可以多层次嵌套使用,可以开启一个大的缓冲,然后根据需要清除某一块的缓冲。

 

二、使用ob_start()把输出那同输出到缓冲区,而不是到浏览器。

然后用ob_get_contents得到缓冲区的数据。ob_start()在服务器打开一个缓冲区来保存所有的输出。所以在任何时候使用echo ,输出都将被加入缓冲区中,直到程序运行结束或者使用ob_flush()来结束。然后在服务器中缓冲区的内容才会发送到浏览器,由浏览器来解析显示。

此时得用函数ob_get_contents()在ob_end_clean()前面来获得缓冲区的内容。

这样的话, 能将在执行ob_end_clean()前把内容保存到一个变量中,然后在ob_end_clean()后面对这个变量做操作。

ob_start();
echo  ‘中国共产党好吗?’;
$name = ob_get_contents();
$length = ob_get_length();
ob_end_clean();
FROM:http://blog.csdn.net/wbandzlhgod/article/details/6743410

打赏

转载请注明:苏demo的别样人生 » php中有关缓冲内置函数

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情