Эквивалент var_dump для отправки данных по электронной почте - PullRequest
0 голосов
/ 30 ноября 2011

Я искал библиотеку php, которая позволяла бы мне отправлять отформатированные данные (например, krumo) для переменных по электронной почте.

Это потому, что я создал обработчик ошибок, который отправляет электронное письмо сданные о производственной среде.

Ответы [ 4 ]

8 голосов
/ 30 ноября 2011

Вы можете json_encode() или serialize() данных, если вы хотите, чтобы они были машиночитаемыми.

Если вы хотите, чтобы они были читаемыми человеком,Вы можете либо предоставить второй аргумент TRUE в print_r(), чтобы вернуть данные в виде строки, либо использовать буферизацию вывода , чтобы перехватить вывод var_dump() в строку.

например

// For machine-readable results
$dataStr = json_encode($data);
// ...or...
$dataStr = serialize($data);

// For human-readable results
ob_start();
var_dump($data);
$dataStr = ob_get_clean();
// ...or...
$dataStr = print_r($data, TRUE);
8 голосов
/ 30 ноября 2011
mail('someone@somewhere.com', 'dump', print_r($obj, true));

будет отправлять удобочитаемые версии содержимого $ obj.Если вам нужна информация о типе / размере, вы можете использовать var_dump, но вам нужно будет использовать функции ob для захвата его вывода, поскольку у него нет опции «возврат вместо вывода».

1 голос
/ 30 ноября 2011

Я бы использовал json_encode() и отправлял переменные в виде строки JSON в письме.

0 голосов
/ 30 ноября 2011

другим способом вы можете отправить его как HTML. Например

<code>$sent = "<pre>".var_dump($data,true)."
";

Но убедитесь, что заголовки содержимого электронной почты установлены в

$headers = "Content-Type: text/html; charset=ISO-8859-1\r\n";
...