PHP输出缓冲区

PHP输出缓冲区,php,debugging,output,Php,Debugging,Output,我自己的PHP框架解析如下文件以获取内容: ob_start(); include($file); $content = ob_get_clean(); 但是,现在我正在开发自己的错误处理程序,以便在模板中发生任何错误时显示错误页面,就像上面的代码段所示 有趣的是,当代码执行因错误而终止时,所包含模板的内容会打印到浏览器中。这当然让我的错误页面看起来很糟糕 打开输出缓冲区不应该阻止打印内容吗 特别是因为ob_get_clean()应该在解析内容后清除内容 为什么会这样 如果我没有遇到错误,网站

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

ob_start();
include($file);
$content = ob_get_clean();
但是,现在我正在开发自己的
错误处理程序
,以便在模板中发生任何错误时显示错误页面,就像上面的代码段所示

有趣的是,当代码执行因错误而终止时,所包含模板的内容会打印到浏览器中。这当然让我的错误页面看起来很糟糕

打开输出缓冲区不应该阻止打印内容吗

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

为什么会这样

如果我没有遇到错误,网站将按预期运行


如何解决这个问题?

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


您的意思是,
$file
包含要执行的代码,而不是被动标记或数据?$file主要包含正在打印的HTML内容。它是网站的HTML代码,当然也包含像循环和if条件这样的PHP代码。一个普通的网站视图,因为这是一个基于MVC模式的框架。
try {
    $app = new App($some_config);
    $app->run();
} 
catch (Exception $e) {
    ob_clean();
    // Display your error page.
}