如何禁用PHP在异常堆栈跟踪中切断部分长参数?

db2dz4w8  于 2023-06-28  发布在  PHP
关注(0)|答案(3)|浏览(90)

有时候会发生这样的事情:

#0 /some/path(1): Class_Name->exception_trigger()
#1 /some/other/path(5):  get_to('/some/long/path/tha...')

我怎样才能看到所有的全部论据?

eoxn13cs

eoxn13cs1#

您必须替换未捕获的异常处理程序。示例:

function exception_handler($exception) {
    $i = 0;
    foreach ($exception->getTrace() as $frame) {
        echo sprintf("#%d %s(%d): %s(%s)\n",
            $i++, $frame["file"], $frame["line"],
            $frame["function"],
            implode(", ", array_map(
                function ($e) { return var_export($e, true); }, $frame["args"])));
    }
}

set_exception_handler('exception_handler');

现在你会得到类似这样的东西:

#0 /home/glopes/a.php(21): a('loooooooooooooooooooooooooooooooooong argument')
#1 /home/glopes/a.php(24): b()
k2arahey

k2arahey3#

打开php.ini添加到最下面的新行:

zend.exception_string_param_max_len = 64 (default = 15)

重新加载php-fpm。
开心点!

相关问题