加上
ob_start,就不会提示出错,原因是当打开了缓冲区,echo 后面的字符不会输出到浏览
器,而是保留在服务器,直到你使用
flush 或者 ob_end_flush 才会输出,所以并不会有任何
文件头输出的错误!
下面再给出一个很经典的用途:
比如你用
<?phpinfo();?>得到服务器和客户端的设置信息,但是这个信息会因为客户端
的不同而不同,如果想要保存
phpinfo()函数的输出怎么办呢?在没有缓冲区控制之前,可
以说一点办法也没有,但是有了缓冲区的控制,我们可以轻松的解决:
代码如下
:
<?
ob_start(); //打开缓冲区
phpinfo(); //使用 phpinfo 函数
?$info=ob_get_contents(); //得到缓冲区的内容并且赋值给?$info
?$file=fopen('info.txt','w'); //打开文件 info.txt
fwrite(?$file,?$info); //写入信息到 info.txt
fclose(?$file); //关闭文件 info.txt
?>
用以上的方法,就可以把不同用户的
phpinfo 信息保存下来,这在以前恐怕没有办法办
到!其实上面就是将一些
“过程”转化为“函数”的方法!