在PHP中将debug_backtrace()分配给变量

在PHP中将debug_backtrace()分配给变量,php,debugging,Php,Debugging,我试图给我发电子邮件debug\u backtrace(),但它只是打印出数组。 我需要将其分配给一个变量,以便var_export可以使用它。 我该怎么做 $var = debug_backtrace() debug\u backtrace返回数组,但不打印它。处理报告电子邮件的代码可能有问题。你能把那段代码也粘贴到这里吗?debug\u backtrace返回数组,但不打印它。处理报告电子邮件的代码可能有问题。你能把这段代码也粘贴到这里吗?发送以下$msg: $msg = print_r

我试图给我发电子邮件
debug\u backtrace()
,但它只是打印出数组。 我需要将其分配给一个变量,以便var_export可以使用它。 我该怎么做

$var = debug_backtrace()


debug\u backtrace
返回数组,但不打印它。处理报告电子邮件的代码可能有问题。你能把那段代码也粘贴到这里吗?

debug\u backtrace
返回数组,但不打印它。处理报告电子邮件的代码可能有问题。你能把这段代码也粘贴到这里吗?

发送以下$msg:

$msg = print_r( debug_backtrace( ) , true ) ;

未测试,但这是一种方式。

发送以下$msg:

$msg = print_r( debug_backtrace( ) , true ) ;
未测试,但这是一种方法。

有一个“打印阵列”的函数,
debug\u print\u backtrace
。你没有碰巧把这两个人混在一起吗?
默认情况下,和print_r()都会打印结果。如果希望返回结果,则必须将
true
作为第二个参数传递(以便将其分配给变量)

有一个“打印出数组”的函数,
debug\u print\u backtrace
。你没有碰巧把这两个人混在一起吗?
默认情况下,和print_r()都会打印结果。如果希望返回结果,则必须将
true
作为第二个参数传递(以便将其分配给变量)


Debug Backtrace返回一个数组,以便您可以像处理任何数组一样处理它。例如:

$trace = debug_backtrace();
foreach ($trace as $i=>$t) {
   $log .= $i .'=>'.$t['file'].' '.$t['line']."\n";
}

然后您可以通过电子邮件发送日志行。

Debug Backtrace返回一个数组,以便您可以像处理任何数组一样处理它。例如:

$trace = debug_backtrace();
foreach ($trace as $i=>$t) {
   $log .= $i .'=>'.$t['file'].' '.$t['line']."\n";
}

然后你可以通过电子邮件发送日志行。

我知道这很旧,但我发现自己也有同样的问题。我无法100%确认,但它很可能与内存不足错误有关

我的场景-在第三方提交失败时,发送一封包含调试信息的电子邮件(即代码失败的位置)。我也在将
$trace=debug\u backtrace()
保存到一个变量中,然后使用
var\u export($trace,true)
将其嵌入电子邮件中。我在CodeIgniter框架内和独立页面(遗留代码)上都使用了这个助手函数

回溯+导出代码在独立页面中运行良好,但在CodeIgniter中打印(部分)结果到屏幕上。它实际上只打印了2条痕迹,然后在直线中间切断。< / P> 当我只打印行、文件、fn和args,而不是重复整个回溯时,一切正常


我的猜测是,太多的回溯递归(遍历CI对象)耗尽了内存,从而导致它将结果吐到屏幕上。

我知道这很旧,但我发现自己也有同样的问题。我无法100%确认,但它很可能与内存不足错误有关

我的场景-在第三方提交失败时,发送一封包含调试信息的电子邮件(即代码失败的位置)。我也在将
$trace=debug\u backtrace()
保存到一个变量中,然后使用
var\u export($trace,true)
将其嵌入电子邮件中。我在CodeIgniter框架内和独立页面(遗留代码)上都使用了这个助手函数

回溯+导出代码在独立页面中运行良好,但在CodeIgniter中打印(部分)结果到屏幕上。它实际上只打印了2条痕迹,然后在直线中间切断。< / P> 当我只打印行、文件、fn和args,而不是重复整个回溯时,一切正常

我的猜测是,来自回溯的太多递归(遍历CI对象)耗尽了内存,从而导致它将结果吐到屏幕上。

您可以使用print\u r()将输出返回到变量并将其放入文件中

$backtrace = debug_backtrace(true);
$dump = print_r($backtrace, true);
$f=fopen('export.txt','a');
fwrite($f, date("Y-m-d H:i:s")." ".$dump."\n");
fclose($f);         
您可以使用print_r()将输出返回到变量并将其放入文件

$backtrace = debug_backtrace(true);
$dump = print_r($backtrace, true);
$f=fopen('export.txt','a');
fwrite($f, date("Y-m-d H:i:s")." ".$dump."\n");
fclose($f);         

我想你有一个额外的尾随括号。我想你有一个额外的尾随括号。