使用 ob start 的典型用法和原因
当你在页面上有重定向时,ob_start
特别方便。例如,以下代码将不起作用:
Hello!
<?php
header("Location: somepage.php");
?>
将给出的错误类似于:headers already sent by <xxx> on line <xxx>
。
为了解决这个问题,你可以在页面的开头写这样的东西:
<?php
ob_start();
?>
在页面的末尾有类似的内容:
<?php
ob_end_flush();
?>
这会将所有生成的内容存储到输出缓冲区中,并一次显示。因此,如果你的页面上有任何重定向调用,那么这些调用将在发送任何数据之前触发,从而消除发生 headers already sent
错误的可能性。