Назначить debug_backtrace () переменной в PHP

Я попытался отправить мне по электронной почте debug_backtrace() но он просто распечатывает массив. Мне нужно назначить его переменной, чтобы var_export мог работать с ней. Как я могу это сделать?

Отправьте следующие $ msg:

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

Не проверено, но это один из способов.

Существует функция, которая «распечатывает массив», debug_print_backtrace . Вы случайно не смешали этих двух?
И как var_export (), так и print_r () по умолчанию печатает результат. Вы должны передать true как второй параметр, если хотите, чтобы они вернули результат (чтобы вы могли назначить его переменной)

 $result = var_export(debug_backtrace(), true); 

????

 $var = debug_backtrace() 

debug_backtrace возвращает массив, но не печатает его. Вероятно, что-то не так с кодом, который обрабатывает отправку по электронной почте отчета. Не могли бы вы вставить этот фрагмент кода здесь?

Debug Backtrace возвращает массив, чтобы вы могли обрабатывать его, как любой массив. Например :

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

то вы можете написать себе строку журнала.

вы можете использовать print_r (), чтобы вернуть результат в переменную и поместить ее в файл

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

Я знаю, что это старо, но я столкнулся с той же проблемой. Я не могу подтвердить 100%, но кажется очень вероятным, что это связано с ошибкой вне памяти.

Мой сценарий – при сбое подачи сторонних сообщений отправьте электронное письмо с информацией об отладке (а именно, где код не сработал). Я тоже $trace = debug_backtrace() для переменной, а затем позже использовал var_export($trace, true) чтобы вставить его в электронное письмо. Я использую эту вспомогательную функцию как внутри рамки CodeIgniter, так и на отдельной странице (устаревший код).

Код backtrace + export работал нормально на отдельной странице, но печатал (частично) результаты на экране, когда в CodeIgniter. На самом деле он только напечатал первые 2 следа, прежде чем отрезать середину линии.

Когда вместо того, чтобы повторять всю обратную трассировку, я печатал только строки, файлы, fn и args, все работало нормально.

Я предполагаю, что слишком много рекурсии из backtrace (поход через объекты CI) сдуло память, что заставило ее вырвать результаты на экран.