2010-10-26 200 views
4

我有一個文本區HTML,用戶可以在其中輸入文本,但是當表單被提交時,並且它被傳遞給php腳本,那麼echo就不會有任何換行符。明知HTML這樣做,我想呼應之前做preg_replace() ...HTML textarea換行符

echo preg_replace("/\n/", "<br />", $_GET["text"]); 

但還是一切都在一行上。

所以我最好的猜測是,HTML textareas使用不同的換行符...任何人都可以揭示這個問題?

編輯

好了,我已經想通了這個問題:JavaScript已經剝離的換行。 view code here

EDIT 2

好了,感謝傑森解決這個問題。我需要做的:

escape(document.getElementById('text')); 

而不只是:

document.getElementById('text'); 

和換行被保留下來,問題就解決了!

回答

3
echo nl2br($_GET['text']) 

雖然,您的preg_replace爲我工作!

+0

還是沒有運氣... – Entity 2010-10-26 00:21:07

+0

真的嗎?!兩種方法都適合我嗎? – Jason 2010-10-26 00:22:48

+0

當你查看源代碼時,你是否正在打印一個新行?在提交表單之後,echo $ _GET ['text']'你在實際的,未格式化的HTML中看到了什麼? – Jason 2010-10-26 00:24:08

0

通常當測試任何字符串中的換行符時,我使用/[\n\r]/,只是爲了覆蓋我的基地。我的猜測是,這將匹配新的線。

+0

似乎沒有工作... – Entity 2010-10-26 00:21:36

+0

你可能有一些奇怪的編碼,或者可能在你獲取GET數據之前剝離了中斷。這個正則表達式將匹配任何換行符,我現在使用它作爲一個web應用程序(實際上,我使用'/([^ \ n \ r] +)[\ n \ r] /'',但它本質上是相同的 – Jesse 2010-10-26 00:27:00

+0

我想知道你是否得到了你的休息時間,也被剝去了 – Jason 2010-10-26 00:28:18