2012-03-12 15 views
1

我在textareas中插入換行符時遇到了一些問題。我提交表單後在數據庫中的文字顯示是這樣的:插入和檢索帶有換行符的文本

「文本\ r \ n對於」(我是在Windows上)

對於下面的文字:
「文本
爲」

再經過我的textarea的從數據庫中檢索相應文本它顯示:

「文本\ r \ n \爲」

我使用PHP,並把文字textarea像這樣:

<textarea name="post_content">{$post_content}</textarea> 

我希望它使用換行符而不是\ n或\ r \ n正確渲染。

+1

嘗試在回顯內容之前用'str_replace()'去掉'\ r'。 EX:'str_replace(「\ r \ n」,「\ n」);' – SIFE 2012-03-12 19:13:36

+0

我現在很困惑。你只是想刪除所有'\ r',或者你真的有2個符號\和n,而不是在文本區域換行嗎? – Basti 2012-03-12 19:22:16

+0

我希望\ n或\ r \ n(窗口對應物)呈現爲新行而不是簡單的「\ r \ n \」文本。 – Mayhem93 2012-03-12 19:24:27

回答

2

存儲在數據庫中的文本有一個單一的\這意味着要跳過n,這發生在可以呈現換行符之前。

最簡單的解決方法是將文本存儲與第二\,像這樣:

text\\r\\nfor 

這將隨後由PHP被渲染爲:

text\r\nfor 

這將有創建HTML新隊。

+0

謝謝,我認爲這是問題:D,會做出必要的改變。 – Mayhem93 2012-03-12 19:25:35

+0

不是,不工作:(現在我在textarea中獲得r當我str_replace \ r \ n用\\ r \\ n – Mayhem93 2012-03-12 19:41:20

+0

我發現我的問題是什麼,我使用的是mysql_escape_string,並且它預裝了一個反斜槓到每個\ n和\ r字符:( – Mayhem93 2012-03-12 19:45:37

-1

你需要做的是在你在textarea中顯示的值中編碼新行。你可以在服務器端或客戶端執行html_encode函數。所以基本上你更換所有 \n\r\r\n<br>.讓我知道,如果它

+0

'