计算在PHP中触发了多少错误

时间:2014-08-05 10:44:53

标签: php error-handling

如果我必须调用不允许正确错误检查的第三方遗留函数, 是否有一个关于php脚本已经触发了多少错误通知的全局计数器?

我想在我的脚本中检测在触发的函数调用期间是否有错误/警告/通知,并在我的脚本中作出相应的反应。

作为一种解决方法,我会在函数调用之前和之后计算apache错误日志中的行数,但这不起作用:

<?php
$errorlogsize_before=filesize(DEBUGMODE_LOGFILE);
third_party_function();
$errorlogsize_after=filesize(DEBUGMODE_LOGFILE);
echo "Logsize before:".$errorlogsize_before."; Logsize after:".$errorlogsize_after."

它们显示相同的文件大小。

3 个答案:

答案 0 :(得分:3)

我假设您的用例是对第三方遗留函数的调用,该函数不允许正确的错误检查。在这种情况下,您可以使用set_error_handler()临时更改错误处理程序,然后使用restore_error_handler()将其还原。其他替代方案如error_get_last()会丢弃所有错误,但最后一个错误。

答案 1 :(得分:2)

您可以使用函数set_error_handler并实现自己的计数器

例如:当发生PHP错误时,我使用自定义错误处理程序将UDP数据发送到statsd守护程序。然后,您可以按类型和页面/文件

绘制错误

答案 2 :(得分:0)

您可以创建自己的计数器:

<?php
$counter = 0;
$site = "://testsite.hjkh/"; //<== IncorrectSite
 fopen($site,"r")
 or die(errorCount + 1); //<==ErrorCount +1
 ?>

在脚本结束时,回显ErrorCount。
看看这里:http://www.w3schools.com/php/func_misc_die.asp