我使用register_shutdown_function()
让PHP在脚本崩溃的任何时候调用函数。在我将其记录到文件后,我想向用户显示一个漂亮的错误 - 抱歉消息。
为此,我想清理当前的输出缓冲区。我认为有一堆输出缓冲区(不确定),所以最大的问题是我是否可以在我的shutdown-callback函数中调用ob_end_clean()
然后打印出我的错误页面?
至少,在mac(本地)的MAMP环境中,我可以在回调函数中回显一些东西,即使在文档中有些人声称这是不可能的。
但如果可行的话,我必须确保之前输出缓冲区的所有内容都得到了清理。另一方面,下一个问题是发送标题会发生什么?
答案 0 :(得分:0)
register_shutdown_function()永远不应该生成可供用户查看的内容。它不是为了这个目的。可以保证套接字仍然是打开的 - 如果是,则HTTP文件流可能无法写入。
如果您想比默认值更优雅地处理错误,那么您需要编写并安装自己的错误处理程序:
<?php
set_error_handler('britney');
function britney()
{
ob_clean;
print "Whoops! I did it again<br />";
debug_print_backtrace();
ob_end_flush();
}
..... your code goes here
℃。