如何使用<pre> tag with php mysql_real_escape_string with database</pre>

时间:2011-05-03 06:43:26

标签: php

我是php mysql的新手。 我有一个textarea和一个按钮。当用户单击该按钮时,textarea中的值存储在mysql数据库中。我面临的问题是......

如果用户输入了

这样的文字
  

嘿这是我的文字(换行符)

     

这是我的第二行文字

...数据库将其存储为:

  嘿,这是我的文字,这是我的   第二行文字

按Enter键实际换行的(linkbreak)。我加 在将数据库保存到数据库之前预标记它工作正常,但它的所有css格式都像粗体字体大小和字体系列一样丢失..

我该如何解决这个问题..

3 个答案:

答案 0 :(得分:0)

当您将文本存储在数据库中时,请将其视为一个单独字符的字符串,而不附加任何表示元数据(因为,您在提交的textarea中看到的内容不一定包含在字符串中已张贴)。

以任何格式查看它的能力取决于上下文。 \n将在那里,只需将其转换为<br />即可在网页上(或在pre或带有white-space: pre的元素中)。

此外,任何颜色或其他表现形式的东西都将取决于再次输出字符串时使用的CSS。

答案 1 :(得分:0)

您还可以使用nl2br($ stringfromwebsite)将所有换行符更改为<br />

答案 2 :(得分:0)

如果您打印PRE中的文字并显示换行符,则会保留换行符 。只是HTML在正常的文本流程中不考虑它们:

  

换行符也是空格字符。请注意,虽然[ISO10646]中定义了&#x2028;&#x2029;以分别明确地分隔行和段落,但这些不构成HTML中的换行符,此规范也不包括它们在更一般的类别中白色空间字符。

     

[...]

     

对于除PRE之外的所有HTML元素,空格序列将“单词”分开(我们在这里使用术语“单词”表示“非空白字符序列”)。格式化文本时,用户代理应根据特定书面语言(脚本)和目标媒体的惯例识别这些单词并将其排列。

这就是为什么HTML引入代表视觉换行符的BR elements的原因。您可以使用nl2br在每个换行符字符序列前面插入BR个元素。