相关疑难解决方法(0)

PHP:如何使用set_error_handler()来正确处理除通知之外的所有错误?

我对如何正确使用set_error_handler()感到困惑,并且php文档并没有真正帮助澄清.

我希望它尽可能多地向我发送电子邮件,但通知除外.

我有以下代码

<?php

if (TRAP_ERRORS) { 
// True on production, false in development, where errors are just echoed out.
    set_exception_handler('globalExceptionHandler');
    set_error_handler('globalErrorHandler', E_USER_WARNING);
}

function globalExceptionHandler($e) {
    //log and email stuff here
}

function globalErrorHandler($errno, $errstr, $errfile, $errline) {
    switch ($errno) {
        case E_NOTICE:
        case E_USER_NOTICE:
            $errors = "Notice";
            break;
        case E_WARNING:
        case E_USER_WARNING:
            $errors = "Warning";
            break;
        case E_ERROR:
        case E_USER_ERROR:
            $errors = "Fatal Error";
            break;
        default:
            $errors = "Unknown Error";
            break;
    }

    error_log(sprintf("PHP %s:  %s in …
Run Code Online (Sandbox Code Playgroud)

php error-handling

15
推荐指数
1
解决办法
2万
查看次数

是否可以捕获文件中发生的所有 PHP 错误

我想捕获页面中的所有 PHP 错误(E_ERROR、E_WARNING、E_NOTICE,..)并将其记录到 MongoDB,以便更好地阅读和评论。

我找到了一种方法来捕获最后发生的错误 'error_get_last' 并将其发送到我想要的任何地方 'register_shutdown_function'使用 register_shutdown_function() 处理 PHP 中的致命错误

但是,如果我的文件有多个错误(例如警告和通知)怎么办?如何获取文件中的所有错误?这可能吗?我需要的是类似“error_get_all”的东西。

在这里你可以找到我的代码,该代码有一个致命错误,两个警告和一个通知:

function shutdown() {
  $error = error_get_last();
  if ($error['type'] === E_ERROR || $error['type'] === E_WARNING || $error['type'] === E_NOTICE) {
    var_dump($error);
  }
}

register_shutdown_function('shutdown');

spl_autoload_register('foo');

$x = 5;
$y = 0;

echo 'x/y: ' . $x / $y . '<br/>';

foreach ($noarray as $noelement) {
  echo 'no element: ' . $noelement . '<br/>';
}
Run Code Online (Sandbox Code Playgroud)

php error-handling

5
推荐指数
1
解决办法
4382
查看次数

我可以将一个方法挂钩到我的php文件,如果任何页面崩溃应该通过电子邮件发送给我页面和错误?

我想知道我是否可以在include中挂钩一个方法,如果我的任何页面(使用包含的内容)崩溃,它将通过电子邮件发送调试日志.

是否存在致命错误后执行的方法?

php error-handling

2
推荐指数
1
解决办法
881
查看次数

标签 统计

error-handling ×3

php ×3