2011-11-30 41 views

回答

7

如果您希望它是机器可读的,您可以使用json_encode()serialize()

如果你希望它是人类可读的,你可以提供第二个参数TRUEprint_r()的数据作为一个字符串返回,或使用output bufferingvar_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); 
+0

谢谢,现在我正在使用var_export参数来缓冲它而不是打印,但在电子邮件上它没有得到格式化的新行。 –

8
mail('[email protected]', 'dump', print_r($obj, true)); 

将发送人类可读版本的$ obj的内容。如果您需要类型/大小信息,则可以使用var_dump,但需要使用ob函数来捕获其输出,因为它没有“返回而不是输出”选项。

+0

感谢,我要去尝试这个。但我也需要格式化段落,因为它在同一行上打印所有内容。 –

+0

这将是你的邮件将其视为html或其他东西。如果您使用的是雷鸟或类似的电子邮件,则会有一个“查看源代码”,您可以在其中获得原始文本,这些文本应该有换行符。 –

1

我会使用json_encode()并将变量作为JSON字符串发送到电子邮件中。

1

另一种方式,你可以把它作为HTML 例如

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

但要确保到电子邮件内容的标题设置为

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

您需要提供'true'作为第二个参数,以使其返回结果,而不是将其写入输出缓冲区...... – DaveRandom

+0

谢谢,我使用了var_export,但输出没有带段落格式。这就是我需要的 –

+0

因为'$ sent =“

".var_dump($data,true)."
”;''不会产生所需的结果,所以在代码片段中将'var_dump'更改为'var_export'或'print_r'。 – MrD