保留数据库中的用户注释格式

时间:2011-01-09 14:29:56

标签: php mysql html

HI,

我正在评论表单上创建用户将被评论并将存储在MYSQL数据库中。我面临的问题是,它作为单行存储在数据库中。应该以精确的格式存储用户在表单中的输入方式(如新行和所有内容)。我正在使用PHP将其存储在MySQL数据库中。

3 个答案:

答案 0 :(得分:4)

首先将其存储为文本或longtext。其次,在显示评论时,使用像nl2br这样的函数将换行符转换为html <br>元素。这样就可以保留换行符。

答案 1 :(得分:1)

如果您将文本放入足够长的文本类型字段(例如TEXT),包括用户输入中的换行符,那么您的文本就可以很好地存储在数据库中。

您的问题是如何显示格式化的文本格式与用户在输入时的方式相同。这是一个更通用的问题,它只与HTML处理空格的方式有关。

正如Ikke所说,一种方法是在评论中调用nl2br。这将用<br>标记替换所有换行符(浏览器忽略这些换行符),这些标记对渲染输出具有可见效果。

另一种选择是将文本放在<pre>...</pre>标记内。这将强制浏览器在保留空格的情况下呈现它。

这真的取决于什么更方便/适合你。

更新:要明确:修改用户输入 将其插入数据库之前(除非它是您输入的一部分)验证,例如从输入中删除HTML标记)。将其存储为“未触摸”格式,并在输出数据之前仅对其进行一些处理。这样,如果输出通道将来发生更改,您始终可以选择执行正确的处理(例如,将注释导出到文本文件,而不是将其显示为HTML)。

答案 2 :(得分:0)

您可以将注释以相同的形式存储在mysql数据库中。一个区别是当你检索具有新行的注释时,你的代码应该查找\ r \ n并解释它..而且当你在mysql中插入数据时,你将不得不从注释中转义'和\字符。 / p>