HTML textarea换行符

问题描述:

我有一个文本区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'); 

和换行被保留下来,问题就解决了!

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

通常当测试任何字符串中的换行符时,我使用/[\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