首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输出缓冲区内的错误

输出缓冲区内的错误
EN

Stack Overflow用户
提问于 2009-12-30 18:56:52
回答 1查看 1.1K关注 0票数 0

我遇到了一些输出缓冲区的问题。我正在缓冲我的脚本,并使用回调打印结果。问题是,如果在任何时候抛出一个错误,什么都不会显示,我会得到一个空白屏幕。我已经尝试设置我自己的自定义错误处理程序,但似乎都不起作用。我有一种感觉,这是因为错误导致我的缓冲区调用回调方法,而不是错误处理程序。这可能是因为我将错误处理程序作为静态方法,但更改它会在其他地方导致问题。

我真的很感谢任何人的帮助,因为这把我难倒了!

代码语言:javascript
复制
public function constructor()
{
    ob_start(array(__CLASS__, 'render'));
    self::$buffer_level = ob_get_level();

    set_error_handler(array(__CLASS__, 'exception_handler'));
    set_exception_handler(array(_CLASS__, 'exception_handler'));

    RUNNING MY SCRIPT HERE

    ob_end_flush();
}

public static function exception_handler($exception, $message = NULL, $file = NULL, $line = NULL)
{
    while (ob_get_level() > self::$buffer_level)
    {
    ob_end_clean();
    }

    echo $exception.' - '.$message.' - '.$file.' - '.$line.'<br/>';
}
EN

回答 1

Stack Overflow用户

发布于 2010-01-01 12:38:57

我建议在PHP中打开错误日志,默认情况下会将错误发送到apache错误日志中。您也可以尝试打开track_errors,但我认为日志是最好的选择。如果您没有访问apache日志的权限,则可能需要手动记录日志。

在使用输出缓冲和其他“幕后”工具(如ajax)时,日志文件和跟踪策略是必不可少的。

您还可以查看一下output_buffering设置。请参阅本文:http://thinkpositivesoftware.blogspot.com/2009/03/have-blank-php-page.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1979588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档