如何检测是否已写入任何输出?如果有重定向怎么办?

时间:2010-07-19 03:14:09

标签: php error-handling

假设我想要一些通用的错误处理,可以从全部调用......

理想情况下,我想使用header('Location:...重定向到错误页面,但是,如果有任何输出已写入,我当然不能这样做,所以......

1)如何检测是否有任何输出? 2)如果有新页面,如何加载?

也许我应该缓冲整个页面,只有在我确定它已完成并且不会再出现错误时才输出它?

2 个答案:

答案 0 :(得分:2)

1)如何检测是否已写入任何输出?

使用headers_sent()

2)如果有新页面,我如何加载?

通过echo出一个元或一个javascript重定向

注意:可能更好地使用一些输出缓冲,或者甚至更好地在所有处理完成之前不回显任何东西

答案 1 :(得分:1)

使用PHP的内置输出缓冲。最简单的是,您需要做的只是在产生输出的任何内容之前调用ob_start()

如果您愿意,还可以利用其他选项:

http://www.php.net/manual/en/function.ob-start.php