PHP中的实时错误报告

PHP中的实时错误报告,php,Php,当我们的站点以前是安装了PHP的IIS主机时,我将错误报告设置为E_NONE,并能够使用以下命令临时打开它: ini_set('display_errors', 1); 现在我们使用的是Linux/Apache主机,该命令似乎不再有效。我曾试图故意向服务器发送错误命令,但没有收到任何错误报告 我做错了什么?是否有其他方法可以临时打开错误报告而不必每次编辑php.ini?您可以使用以下行将错误报告更改为E_ALL: error_reporting(E_ALL); 尝试将其添加到文件中。打开所有

当我们的站点以前是安装了PHP的IIS主机时,我将错误报告设置为E_NONE,并能够使用以下命令临时打开它:

ini_set('display_errors', 1);
现在我们使用的是Linux/Apache主机,该命令似乎不再有效。我曾试图故意向服务器发送错误命令,但没有收到任何错误报告


我做错了什么?是否有其他方法可以临时打开错误报告而不必每次编辑php.ini?

您可以使用以下行将错误报告更改为
E_ALL

error_reporting(E_ALL);

尝试将其添加到文件中。

打开所有错误的最佳方法是:

error_reporting( -1 );

这比E_ALL要好,因为E_ALL实际上并不意味着所有版本的PHP中都有错误(它只在最近的版本中有)-1是确保它在所有情况下都处于打开状态的唯一方法。

我只需在我的一个脚本中执行此操作。DOMDocument警告正在杀死我的日志。所以,你要做的是:

// First, grab a copy of the current error_reporting level
// while setting the new level, I set it to zero because I wanted
// it off - but you could easily turn it on here
$erlevel = error_reporting(0);
// Then, do stuff that generates errors/warnings
// Finally, set the reporting level to it's previous value
error_reporting($erlevel);

我的意思是,这种东西最好在php.ini文件中设置服务器范围(dev或prod)。我真的很喜欢人们做特定文件的错误显示,它只会造成混乱。如果我在服务器上做,那么它会显示在整个网站上。通过将其添加到页面,它只显示在该页面上。下面是完整的列表更新:从PHP5.4开始,E_STRICT现在包含在E_ALL中,它现在包含所有错误类。在我看来,E_ALL通常比-1好。这使得未来的PHP版本可以选择引入实验性的新错误类,并且在将来的版本(如PHP5.x-5.3中的严格E_)出现之前,不会让它们触发基于E_ALL的脚本。