PHP输出缓冲区

时间:2015-12-14 17:24:21

标签: php debugging output

我自己的PHP框架解析这样的文件以获取内容:

ob_start();
include($file);
$content = ob_get_clean();

但是,现在我正在使用自己的error_handler来显示错误页面,如果发生任何错误,即使它在解析的模板中感兴趣,就像上面演示的代码片段一样。

有趣的是,当代码执行因例如错误而死亡时,所包含的模板的内容将被打印到浏览器中。这当然使我的错误页面看起来很糟糕。

打开输出缓冲区是否阻止打印内容?

特别是因为ob_get_clean()应该在解析后清除内容。

为什么会这样?

如果我没有遇到错误,网站就会按预期运作。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

我想我遇到了同样的问题。尝试使用ob_clean():

try {
    $app = new App($some_config);
    $app->run();
} 
catch (Exception $e) {
    ob_clean();
    // Display your error page.
}