在php中抑制2048个错误

时间:2012-11-17 06:31:25

标签: php error-handling shutdown error-reporting

好的,首先,我一直在谷歌搜索近40分钟,我找不到我的具体问题的答案。我理解最好修复错误,但这不是问题。

我需要做的是让php NOT报告2048错误。原因是,我继承了一个站点,我需要设置一个关闭函数来捕获致命错误并向我发送短信。所有这一切都很好。但是代码不断抛出2048个错误,因此当我的关闭函数命中时,抛出的最后一个错误始终是2048而不是实际的致命错误。我不需要关闭显示错误,因为这不是问题。它是我关心的后端处理。

我已通过关闭错误报告对此进行了测试。当我这样做时,我得到了预期的结果,但这意味着我无法在服务器上记录其他错误。我只是想忽略2048个错误,我认为这些错误是E_STRICT。但是,我的错误报告仅设置为E_ERROR,我不认为E_STRICT包含在其中。

那么,我如何让php完全停止报告2048错误,所以他们不会覆盖我的实际致命错误?但请保留E_ERROR,以便我可以在服务器上记录其他错误......

修改

这解决了......有点:

我仍然不知道如何正确地抑制该错误或者为什么error_reporting()会影响error_get_last。但是,解决了在服务器上仍然记录错误时能够忽略该错误的根本问题。我刚刚完全关闭了错误报告,并向我的关闭函数添加了错误报告,以手动将数据写入日志文件。

这是我用于所有非致命错误的代码:

        $message="\n[".date('d-M-Y H:i:s',time())."] PHP Notice:  ".$e['message']." in ".$e['file']." on line ".$e['line'];
        $file=dirname(__FILE__) . '/error_log-'.date("m-d-Y").'.txt';
        file_put_contents($file, $message, FILE_APPEND | LOCK_EX);

这不是我正在寻找的答案,但它解决了我的问题我仍然有兴趣知道是否有人真正知道如何关闭e_strict报告,以便它不会出现在error_get_last()中。

和平。

2 个答案:

答案 0 :(得分:0)

如何设置错误报告级别,如果设置为E_ERROR,则会跳过E_STRICT

error_reporting(E_ERROR);

答案 1 :(得分:0)

使用此

修改PHP.ini文件
E_ALL & ~E_STRICT

这将显示除E_STRICT之外的所有错误..

OR

在PHP文件中

error_reporting(E_ALL | E_STRICT);

了解更多知识,请访问PHP NET http://php.net/manual/en/migrating5.errorrep.php

相关问题