2

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

4

6 回答 6

8

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

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

于 2013-01-22T07:12:16.147 回答
2

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

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

于 2013-01-22T07:15:31.967 回答
1

你可以使用它:

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

PHP 将日志文件写入文件。

如果您不能启用显示错误指令,您可以使用 var_dump、debug_backtrace 和异常来调试 php 源代码。

于 2013-01-22T07:11:54.337 回答
0

“每当您想在打印语句或调试器表达式中键入某些内容时,请将其写为测试”

——马丁·福勒

于 2013-01-22T07:08:41.117 回答
0

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

于 2013-01-22T07:10:57.113 回答
0
var_dump($variable);
exit;

或者

echo $variable;
exit;

或者

echo "<pre>";
print_r($variable);
exit;
于 2013-01-22T07:11:05.473 回答