本文完整阅读约需 3 分钟,如时间较长请考虑收藏后慢慢阅读~

在测试环境测试通过的代码迁移到生产环境时经常会遇到各种各样的不兼容,从配置文件到代码逻辑(例如生产环境有禁用函数),各种各样的原因都会导致服务器报错,但是通常情况下生产环境不会输出错误,而在生产环境修改php.ini也不方便,不现实。在这种情况下如何才能让PHP显示错误呢?这篇文章便来详细讲解如何在不修改php.ini的情况下使PHP输出错误信息。

方法1 直接输出错误到浏览器

在待调试的代码头部加入以下代码,即可对该文件启用错误输出(临时生效,代码结束完毕失效)

ini_set('display_errors', true);  
error_reporting(E_ALL);  

ini_set()函数可以临时对一些配置进行修改,具体可以参考PHP官方文档ini参数列表,除了可以即时显示错误信息以外,还可以调整超时时间,调整最大上传文件体积等各种各样配置。

方法2 输出错误到指定文件

注意:该方法必须保证文件所在目录可以被PHP所属用户写入,否则无法生效

ini_set('display_errors', false);  
error_reporting(E_ALL);  
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');  

原理同上,但是指定了错误日志的路径并关闭了显示错误信息的选项,这时候错误就会输出到文件,调试完毕后打开文件即可以看见所有错误。