PHP 错误未显示

PHP 错误未显示

我在 Ubuntu 12.10 上使用 PHP 和 Apache。由于某种原因,错误没有显示在浏览器中,我不明白为什么。

我的文件中有以下内容php.ini

error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
display_startup_errors = On
log_errors = On

我也确信我已经编辑了正确的 ini 文件,方法是使用 进行验证php_ini_loaded_file()。我还可以通过在脚本中执行以下操作来验证值是否正确设置:

echo ini_get("display_errors"); // Outputs 1
echo ini_get("display_startup_errors"); // Outputs 1
echo ini_get("log_errors"); // Outputs 1
echo ini_get("error_reporting"); // Outputs -1

我尝试了这些设置的所有可能组合(每次更改后都重新启动 Apache),但就是没有输出错误。我也没有ini_set在脚本的任何地方使用它。它仅从 ini 文件中设置。

知道为什么不显示错误吗?

更新:

事实证明显示一些错误,但不是全部。

echo 'hello''; // Shows syntax error
trigger_error("E_USER_WARNING", E_USER_WARNING); // shows error
trigger_error("E_USER_NOTICE", E_USER_NOTICE); // shows error
trigger_error("E_USER_ERROR", E_USER_ERROR); // Doesn't show error

答案1

事实证明,问题在于佩布卡克Content-type标题。执行时:

header('Content-Type: application/xhtml+xml; charset=UTF-8');

然后浏览器就需要一个有效的 XML 文档。当出现特定错误时,即使内容已发送,也会导致文档根本不显示在浏览器中。查看页面源代码显示,错误确实已与所有其他代码一起成功发送到浏览器。我的问题是,我以为根本没有回显任何内容,因为我看到的都是白色的。

相关内容