2011-11-30 58 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