Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。
<?php
// 打开缓冲区,这个一定要写到输出的最前方
ob_start();
echo "不要显示";
ob_end_clean();
echo "只要显示这";
?>
输出结果:
只要显示这
Output Control 函数还可以做什么?
header()函数会发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会提示出错:”Header had all ready send by”。
原因:当打开了缓冲区,echo后面的字符不会输出到浏览器,而是保留在服务器,直到你使用 flush或者ob_end_flush才会输出,所以并不会有任何文件头输出的错误!
<?php ob_start(); echo \"Hellon\"; //把浏览器重定向到index.php header("location:index.php"); ob_end_flush(); ?>
Output Control 函数介绍
flush:刷新缓冲区的内容,输出。
ob_start :打开输出缓冲区。
ob_get_contents :返回内部缓冲区的内容。
ob_get_length:返回内部缓冲区的长度。
ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区。
ob_implicit_flush:打开或关闭绝对刷新。