关闭display_errors时调试PHP脚本

时间:2013-01-22 07:07:00

标签: php debugging

当display_errors关闭且PHP以安全模式运行时,我们如何调试PHP脚本?

6 个答案:

答案 0 :(得分:8)

最好的方法是使用error_log() http://php.net/manual/en/function.error-log.php 您可以为该方法设置特定的处理程序。将其记录到数据库,文件或只显示错误。

如果要设置处理程序方法,可以使用:set_error_handler

答案 1 :(得分:2)

如果您在开发环境中,则应禁用safe_mode并启用error_reporting。在生产环境中,您可能不应该进行实时调试(因为它是实时的)。如果要使用error_log跟踪生产环境中似乎的错误,或使用您正在使用的框架的日志记录机制,请在之后检查日志。这样您就不会破坏生产环境的正常运行。某些框架(如symfony)提供了一个单独的界面来访问另一个环境中的系统(例如,访问index.php已禁用错误报告,但frontend_dev.php没有)

如果您没有单独的生产和开发环境,那么将它们分开是时候了。例如,您可以安装XAMPP或类似的开发PC,在那里您可以进行开发,只有在您已经调试/测试/等代码时才部署到实时服务器。

答案 2 :(得分:1)

您可以使用:

error_reporting(E_ALL);
ini_set('display_errors','On');
ini_set('error_log','my_file.log');

PHP将日志文件写入文件。

如果无法启用display errors指令,可以使用var_dump,debug_backtrace和exception来调试php源代码。

答案 3 :(得分:0)

  

“每当你想要在打印声明或类型中输入内容时   调试器表达式,将其写为测试而不是“

     

- Martin Fowler

答案 4 :(得分:0)

当错误显示关闭时,我们只能使用echo $var; exit; OR var_dump($list); exit;

来调试代码

答案 5 :(得分:0)

var_dump($variable);
exit;

OR

echo $variable;
exit;

OR

echo "<pre>";
print_r($variable);
exit;