2011-04-30 85 views
19

我在我的html中有一個textarea表單。如果用戶在2個句子之間輸入數據應該被帶到我的PHP。從textarea輸入捕獲換行符

目前,如果用戶輸入:

Apple 
Google 
MS 

和我的PHP代碼:

$str = $_POST["field"]; 

echo $str; 

我得到

Apple Google MS 

作爲輸出。我想要輸出是這樣的

Apple 
Google 
MS 

我該怎麼辦?

回答

38

嘗試nl2br()代替:

echo nl2br($str); 
+2

更好。不知道有一個專門用於此的內置功能。 – Thilo 2011-04-30 20:44:53

3

換行符應該包含在您從$_POST["field"]獲得的字符串中。但是,如果您然後將該字符串用作HTML中的輸出,則換行符將被視爲空白。要強制換行,請使用preg_replace("/\n/", "<br />", $str)

+0

這預浸料將失敗(無定界符),也爲什麼不'str_replace()函數'? – 2011-04-30 20:46:42

+0

確實 - 解決了這個問題。無論如何,你的答案會更好。但是,解釋原因可能有助於更好地理解修復程序。 – Thilo 2011-04-30 20:49:28

0

這是因爲當你迴音它它被顯示爲HTML。 A \n字符被解釋爲空格。如果你查看源代碼,你會看到你想要的輸出。

要轉換\n<br>使用:

echo nl2br($str);