我在 HTML
中有一个文本区域,用户可以在其中输入文本,但是当表单被提交并传递到一个 php
脚本中进行 echo
时,没有任何换行符。知道这一点,我尝试在 echo
之前使用 preg_replace()
...
echo preg_replace("/\n/", "<br />", $_GET["text"]);
但是仍然所有内容都在一行上。
因此,我猜测HTML
文本区域使用不同的换行符…有人能否解释一下这个问题?
编辑
好的,我已经找到了问题所在:JavaScript正在剥夺换行符。 在此处查看代码
第二次编辑
感谢Jason解决了这个问题。 我需要做:
escape(document.getElementById('text'));
不只是:
document.getElementById('text');
并且换行符被保留,问题得到解决!
echo $_GET['text']
在实际的未格式化的HTML中会看到什么? - Jasonecho $_GET['text']
,我会得到所有内容都在一行上...很奇怪... - Entity%0D%0A
,代替了\n
(空格以+
替换)。 - Jasonasdfasdf
。以下是代码:http://pastebin.com/raw.php?i=w79aMvSv - Entitynl2br(htmlspecialchars($_GET['text']))
。 - kijin