好的,首先,我一直在谷歌搜索近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()中。
和平。
答案 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