我在评论表单上创建用户将被评论并存储在MYSQL数据库中。我面临的问题是,它作为单行存储在数据库中。它应该以确切的格式存储在表单中用户的输入方式(如新行和所有内容)。我使用PHP将其存储在MySQL数据库中。
回答
首先将其作为文本或longtext存储。其次,在显示评论时,使用像nl2br这样的函数将换行符转换为html <br>
元素。这样,换行符被保留。
我想这是有问题的 - 一旦评论被存储到数据库中,他将来想要使用什么格式?如果只有HTML然后将
粘贴到文本中就没问题。 另一件事 - 克里希纳提到(新线和一切)我想知道“一切”是什么? –
diagonalbatman
2011-01-09 14:34:06
您可以将注释以相同的形式存储在mysql数据库中。一个区别是,当你检索注释时,你的代码应该查找\ r \ n并解释它,并且当你在mysql中插入数据时,你将不得不从注释中转义'和\字符。
如果您将文本放入足够长的文本类型字段(例如TEXT
)(包括用户输入中的换行符),那么您的文本就会很好地存储在数据库中。
你的问题是如何显示文本格式的用户看到它的方式进入时。这是一个更通用的问题,它只与HTML如何处理空白有关。如Ikke所说,一种方法是在评论上拨打nl2br
。这将替换所有换行符(浏览器忽略)与<br>
标签,这些标签对渲染的输出有明显的影响。
另一种选择是将文本放在<pre>...</pre>
标记中。这将强制浏览器在保留空白的情况下渲染它。
这真的取决于什么更方便/适合你。
更新:只是要清楚:做不修改用户输入之前在数据库中插入它(除非它是你输入验证的一部分,例如像从输入剥离HTML标签)。将其存储为“未修改”格式,并且只能在输出之前对其进行一些处理。这样,如果将来输出频道发生变化(例如,将注释导出为文本文件并将其显示为HTML),则始终可以选择执行正确的处理。
但是,当我将注释存储在数据库中时,它不会存储用户键入的换行符和其他字符。我不知道为什么它被删除? – Krishna 2011-01-11 17:08:12
- 1. 解析haskell保留注释/格式
- 2. 保留空格并在ANTLR4中注释
- 3. 在图上保留数据点注释
- 4. 如何在Drupal中保留输入注释的格式?
- 5. 如何在MySQL数据库中保留HTML格式?
- 6. 在Proguard中保留带注释的类
- 7. 在Parsed XML中保留注释(Python 2.7)
- 8. 在用户控件中保留数据
- 9. 在MVC中保留用户数据3
- 10. progaurd不保留注释
- 11. 使用注释器js在mysql数据库中存储注释(注释)
- 12. 在注释风格中使用Hibernate的多个数据库
- 13. 在数据帧内平均子集,同时保留注释
- 14. 如何保留宏注释中的糖,格式和空格(内联元)?
- 15. 以CSV格式导出数据库是否保留其模式?
- 16. 在数据库中保留用户历史记录
- 17. VSTS数据库模式比较不保存注释
- 18. 在Doctrine2数据库中保留日期
- 19. EntityFramework提取到CSV,但保留数据注释
- 20. Android Studio中注释格式
- 21. 格式表中的注释
- 22. 保留在Configuration.Save格式化()
- 23. 保留CGLIB代理上的注释?
- 24. 删除文本框但保留注释
- 25. 表示内源保留注释
- 26. Eclipse注释格式样式
- 27. 在post expressjs后保留表格数据
- 28. SQL Server 2005数据库停留在单用户模式下
- 29. 自定义用户数据保留
- 30. 通过@Table注释映射不同数据库中的表格
什么是数据库字段类型?你如何推送到数据库?内容丰富的文本,比如某种标记,是纯文本吗?等等。 – 2011-01-09 14:32:20