php 缓冲函数讲解

<?php  

ob_start();  
echo   "Hello\n ";  

setcookie   ( "cookiename ",   "cookiedata ");  

ob_end_flush();  

?>  

 

ob_start();
....
ob_clean();
这两句中间的任意输出,都可以用ob_get_contents();来获取而不输出到浏览器

经典应用:将phpinfo()的信息写到文件里.
ob_start();
phpinfo();
$phpinfo = ob_get_contents();
//文件读写操作
ob_clean();

在上面的例子中,使用   echo()   的输出内容将会保存在输出缓冲区中,直到调用了   ob_end_flush().   这样做有意义的地方是,调用   setcookie()   的内容被成功的存储在   cookie   里面而不会引起错误.   (正常情况下,你不可以在有数据已经发送后再发送文件头信息到用户浏览器.)  

相关函数   header()   and   setcookie().  

韩数列表  
flush   —   刷新输出缓冲区  
保存在输出缓冲区的内容会被发送到浏览器  

ob_start   —   打开输出缓冲区  
这样所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面  

ob_get_contents   —   返回输出缓冲区的内容  
如果你想以后处理输出的内容,可以调用这个函数保留一个备份  

ob_get_length   —   返回输出缓冲区的内容长度  

ob_end_flush   —   结束(发送)输出缓冲区的内容,关闭输出缓冲区  

ob_end_clean   —   删除(放弃)输出缓冲区的内容,关闭输出缓冲区  
如果你的程序发现输出内容有问题,可以放弃所有输出内容,可以防止泄漏某些秘密信息  

ob_implicit_flush   —   打开或关闭直接刷新  
打开后,每个脚本输出都直接发送到浏览器,不再需要调用   flush(),

你可能感兴趣的:(PHP,缓冲,ob_start)