我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
我经常会尝试运行PHP脚本,然后得到一个空白屏幕。没有错误信息;只有一个空屏幕。原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或者完全是其他原因。
很难找出哪里出了问题。我最终注释掉了代码,到处输入“echo”语句,等等,试图缩小问题的范围。但肯定有更好的办法,对吧?
是否有一种方法可以让PHP像Java那样产生有用的错误消息?
当前回答
如果你是一个ubuntu用户,那么在你的终端上运行这个命令
sudo tail -50f /var/log/apache2/error.log
它将显示最近的50个错误。 apache2有一个错误文件error.log,用来记录所有错误。
其他回答
您可以在要调试的文件中包含以下行:
error_reporting(E_ALL);
ini_set('display_errors', '1');
这将覆盖PHP .ini中的默认设置,这只会使PHP向日志报告错误。
错误和警告通常出现在....\logs\php_error.log或....\logs\apache_error.log中,具体取决于您的php.ini设置。
此外,有用的错误通常指向浏览器,但由于它们不是有效的html,因此不会显示。
所以"tail -f"你的日志文件,当你得到一个空白屏幕使用IEs "view" -> "source"菜单选项来查看原始输出。
在页面顶部选择一个参数
error_reporting(E_ERROR | E_WARNING | E_PARSE);
可以通过注册钩子来显示最后一个错误或警告。
function shutdown(){
var_dump(error_get_last());
}
register_shutdown_function('shutdown');
将此代码添加到index.php的开头将有助于调试问题。
你也可以像这样在终端(命令行)运行文件:
这将运行您的代码,并为您提供与在error.log中看到的任何错误相同的输出。它提到了错误和行号。