我在評論表單上創建用戶將被評論並存儲在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. 用於編輯保留格式和註釋的XML的Python庫
- 4. 在圖上保留數據點註釋
- 5. 如何在Drupal中保留輸入註釋的格式?
- 6. 如何在MySQL數據庫中保留HTML格式?
- 7. 在Parsed XML中保留註釋(Python 2.7)
- 8. 在Proguard中保留帶註釋的類
- 9. 在用戶控件中保留數據
- 10. 在ASP.NET MVC中保留用戶數據
- 11. 在MVC中保留用戶數據3
- 12. 保留註釋的順序
- 13. 重寫時保留註釋
- 14. progaurd不保留註釋
- 15. 註釋SOURCE保留策略
- 16. 使用註釋器js在mysql數據庫中存儲註釋(註釋)
- 17. 在註釋風格中使用Hibernate的多個數據庫
- 18. 在數據幀內平均子集,同時保留註釋
- 19. 如何保留宏註釋中的糖,格式和空格(內聯元)?
- 20. 以CSV格式導出數據庫是否保留其模式?
- 21. 在數據庫中保留用戶歷史記錄
- 22. 如何在Fortran中使用註釋讀取格式化數據?
- 23. VSTS數據庫模式比較不保存註釋
- 24. 在Doctrine2數據庫中保留日期
- 25. EntityFramework提取到CSV,但保留數據註釋
- 26. 格式表中的註釋
- 27. Android Studio中註釋格式
- 28. 保留在Configuration.Save格式化()
- 29. TypeScript編譯時保留註釋
- 30. 表示內源保留註釋
什麼是數據庫字段類型?你如何推送到數據庫?內容豐富的文本,比如某種標記,是純文本嗎?等等。 – 2011-01-09 14:32:20