我想创建一个文本编辑器,但是我在编辑文本时如何将文章存储在数据库中时遇到问题。我是否使用HTML代码存储它或将HTML标记转换为特殊符号,例如:<br>
标记到[br]
,<span>text</span>
到[span]text[/span]
?
非常感谢:)
答案 0 :(得分:0)
在数据库中,您只需存储特殊字符(如html和其他字符)的转义值。
使用:mysqli_real_escape_string
您可以使用多种方法:urlencode/urldecode
,htmlspecialchars
等。
答案 1 :(得分:0)
除非您不想呈现HTML,否则没有理由替换这些符号。如果是这样,那么您也可以使用HTML Entities。这些不会被浏览器呈现为HTML,然后将文本保存在数据库中。
如果您想要在某处加载HTML时呈现HTML,那么您就不必使用HTML Entities
替换符号。
但是,如果您允许用户输入内容,请务必在存储之前清理为可能的scripting attacks输入的任何文本。
答案 2 :(得分:0)
这实际上取决于你想用它做什么。至少你要确保遵循“从不信任任何人......永远......”的规则。
确保在将数据插入数据库之前,您正在做的事情是清理数据。
有许多库允许您从HTML(标记)转换为标记。
https://github.com/netgusto/upndown&lt; - javascript
https://github.com/Elephant418/Markdownify&lt; - php
IMO并不重要,只要它是标准格式,您保存的格式就不重要了。 HTML,Markdown等多年来经过试验和测试非常精彩......为什么要重新发明轮子。
https://en.wikipedia.org/wiki/List_of_document_markup_languages
在某些方面,将其保存为编辑器正在创建的内容可能就像尝试将其转换为其他内容一样简单,因为您只需要在返回途中重新转换它; - )
请记住在将数据添加到数据库之前对其进行SANITIZE,否则您将面临可能导致数据库丢失,数据损坏甚至更糟的恶意攻击。