有時候,這樣的事情發生:如何禁用PHP在異常堆棧跟蹤中關閉長參數部分?
#0 /some/path(1): Class_Name->exception_trigger()
#1 /some/other/path(5): get_to('/some/long/path/tha...')
我如何能看到的一切完整的參數呢?
有時候,這樣的事情發生:如何禁用PHP在異常堆棧跟蹤中關閉長參數部分?
#0 /some/path(1): Class_Name->exception_trigger()
#1 /some/other/path(5): get_to('/some/long/path/tha...')
我如何能看到的一切完整的參數呢?
您必須替換未捕獲的異常處理程序。例如:如果你使用xdebug可以specify the length and number of variables它吐出
#0 /home/glopes/a.php(21): a('loooooooooooooooooooooooooooooooooong argument') #1 /home/glopes/a.php(24): b()
:
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');
現在,你得到的東西等。
+1對於建議xdebug – NullUserException 2010-08-14 02:23:31
好主意,但它不適用於我們通常禁用的產品。 – 2017-03-30 11:28:15
請記住,$ frame ['file']並不總是被定義的,因此您需要先檢查它。在這種情況下,PHP的堆棧翻轉器返回'[內部函數]'。此外,你可能想看看是否定義了$ frame ['class'],並且在函數是成員函數的情況下也轉儲它。 – DaveBurns 2012-09-19 18:37:44