1

2

3

ini_set(‘display_errors’, ‘1’);  //设置display_errors为On

 

ini_set(‘display_errors’, ‘0’); //设置display_errors为Off

在很多时候我们调试php站点,需要开启php错误设置。大部分情况下都是直接修改php.ini中display_errors为On。

但是直接修改可能会需要重启apache/IIS服务,更多的时候会直接影响到同服务器的其他站点。

在日常调试中可以直接设置单个站点的错误设置。

QQ截图20160905130617.jpg

如上图所示,我们先设置ini_set(‘display_errors’, ‘1’);输出phpinfo,然后再设置ini_set(‘display_errors’, ‘0’);输出phpinfo.看有什么区别。

从下图可以看到display_errors的Local Value已经为On,并且给出了语法错误提示。

QQ截图20160905130805.jpg

QQ截图20160905130927.jpg

ini_set(‘display_errors’, ‘0’);时候打印phpinfo如下图:可以看到display_errors项为off,并且同样的语句不再报出提示。

QQ截图20160905131052.jpg

QQ截图20160905131132.jpg

下面以dedecms为例:

默认情况下display_errors和dedecms程序自身都是屏蔽错误的。

修改include目录下common.inc.php文件中error_reporting(E_ALL);

QQ截图20160905131543.jpg

访问页面没有报任何错误或者提示。

QQ截图20160905131627.jpg

现在我们设置ini_set(‘display_errors’, ‘1’);

从下图可以看到,页面输出了很多php语法提示(notice)。说明当前设置下php为显示具体错误信息。

QQ截图20160905131734.jpg

QQ截图20160905131804.jpg

在以后的站点调试中,首选在代码中增加ini_set(‘display_errors’, ‘1’);来设置该站点的display_errors项为On.

尽量不要去修改服务器上的php配置文件,以免忘记修改回来或重启web服务影响到其他站点的正常运行。

参考:http://php.net/manual/en/function.ini-set.php