2011-09-14 29 views
0

我想從上一頁發佈一些信息,然後通過電子郵件將其發送出去。無法讓nl2br使用PHP郵件工作

從上一頁發佈的信息位於文本區域內,我希望它在用戶在該文本區域中鍵入時按下輸入時自動添加新行。

嘗試使用nl2br,它似乎不工作。我的代碼:

從以前的頁面發佈:

$BREAKINGNEWS=nl2br($_POST['BREAKINGNEWS']); 

採取這一信息,並把它到電子郵件的消息:

$message .= nl2br($BREAKINGNEWS); 

正如你可以看到我已經把它的兩倍,但它仍然不起作用,並在每行的末尾打印出\ r \ n。

我試過只是在POST上,只是在$消息,但它拒絕工作。

任何想法?

+0

你需要展示更多的代碼,否則不清楚你的問題是什麼。 'nl2br'就像宣佈的那樣工作。 – hakre

+0

看來,雖然帖子發生反斜槓將appendded到你的內容。你能否確認內容是'\ n'還是'\\\ n'。 –

回答

0

用「\ n」替換「\ r \ n」?

$text = nl2br(str_replace("\r\n", "\n", $_POST['BREAKINGNEWS'])); 

編輯: 你在PHPMailer的設置IsHTML(true)

$mail = new PHPMailer(); 
$mail->IsHTML(true); 
+0

不,不起作用。它仍然打印出\ r \ n –

+0

我上面添加了一個編輯到我的答案,你有沒有做到這一點?也許它不喜歡HTML? – DRiFTy

+0

我在郵件的其他地方使用HTML,所有工作正常。 當我嘗試添加剛纔發佈的代碼時,整個事情都不起作用。 –

0

請試試這個:

$text = str_replace("\r\n", " 
", $text; 
1

你可能在使用SQL逃避,你應該只適用於當輸出會在SQL查詢中使用SQL轉義。當您使用nl2br()時,儘量不要逃避數據。