2015-09-04 70 views
0

我有一個Web表單,允許用戶輸入文本,然後使用swift郵件發送電子郵件。他們輸入的文字可能包含\ r \ n。我用text/html發送郵件。在發送電子郵件之前,我曾嘗試對用戶輸入的文本執行\ r \ n替換以及nl2br功能,以便將所有出現的\ r \ n更改爲
;但在所有情況下,電子郵件仍會以\ r \ n顯示在短信中,而不是實際的換行符。php - 在電子郵件中遇到問題/ r/n <br>

下面是準備文本和電子郵件代碼的代碼片段。

/* replace all cr/lf with a <br> */ 
$ind_msg = nl2br($ind_msg); 

/* send the email message */ 
$status = send_email($db, $ind_email, $ind_name, $sender, $sender_name, $msg_subj, $ind_msg, ""); 

電子郵件代碼

/* create the message */ 
$message = Swift_Message::newInstance(); 
$message->setTo(array($recipient => $recipient_name)); 
$message->setSubject($msg_subject); 
$message->setContentType("text/html; charset=UTF-8"); 
$message->setBody($msg_body); 
$message->setFrom(array($sender => $sender_name)); 

我缺少什麼或者做錯了嗎?

+2

你錯了'nl2br()'。它不會取代新的生產線。它後面添加了html換行符。 –

+0

您可以發佈可能的輸入以及預期的輸出 –

回答

0

你可以試試:

$ind_msg = str_replace(array('\r\n'), array('<br>'), $ind_msg); 
0

nl2br不更換新行字符。它在所有換行符之前添加「br」標籤。如果你想替換它們,使用str_replace();

VG bytecounter