<pre></pre>内的文字格式消失了,出了什么问题?

时间:2009-12-14 14:51:41

标签: html css layout newline

我在<textarea></textarea>输入了一些文字,我输入了一些换行符,空格等。故意。但是,在<pre></pre>内提交和呈现文本后,换行符,空格已经消失,它们被\r\n\r\n之类的内容替换,出了什么问题?如何保留原始格式?

 <textarea name="detail" id="detail" rows="7" cols="60" style="font-family:Arial, Helvetica, sans-serif"><?php echo $detail ?></textarea>

我以HTML格式呈现文字。

这是输出:

  

城市群   杭州市区(杭州市区)有   常住人口3.9319   截至2003年的百万,其中2.6367   百万... \ n \ n \ n \ n \ n \ n \杭州   位于浙江北部   中国东部省,中国   大运河南端   中国,在平原上   ... \\\\ r \\\ n在夏末   (8月至9月),杭州,沿   与浙江其他城市   省,遭受台风风暴,但   台风很少直接攻击它。   通常。编辑\ r \ n \ r \ n另一行。

数据类型是varchar(MySQL),它有什么问题吗?

3 个答案:

答案 0 :(得分:1)

<强> PHP

Allow HTML in TextArea

<强> asp.net

<%@ Page ValidateRequest="false"

答案 1 :(得分:0)

您需要先通过nl2br功能运行输出:

<pre><?php echo nl2br($content) ?></pre>

确保您在某些时候逃避数据以防止恶意输入 - 在使用mysql_real_escape_string将其粘贴到数据库之前或使用htmlspecialchars将其打印到屏幕之前

答案 2 :(得分:0)

您是否将这些内容输入到网络应用中?你写的一个?可能发生的事情是他们被认为是新线路。在Windows平台上,使用\ r(回车符)和\ n(新行)完成段落/换行符。如果您在新页面或网站上重新显示它们,则需要在某些html中重新显示,或者在原始提交中重新显示,替换\ r \ n <pre>(whitespaceofyourchoice)<\pre>

\ r和\ n是ASCII字符,不是HTML格式的一部分。因此,Web浏览器会选择忽略它们。