把</form>的内容插入mysql的时候,会自动转义 把"<" 转义成 "<" ,我用的thinkPHP框架.
也不知道是因为PHP本身,还是thinkPHP的原因,请问怎么才能不转义直接插入数据库呢?
实在没办法的话,读取的时候,使用什么函数,才能把 &xx 这些转义符变成我们常规的符号呢?
把</form>的内容插入mysql的时候,会自动转义 把"<" 转义成 "<" ,我用的thinkPHP框架.
也不知道是因为PHP本身,还是thinkPHP的原因,请问怎么才能不转义直接插入数据库呢?
实在没办法的话,读取的时候,使用什么函数,才能把 &xx 这些转义符变成我们常规的符号呢?
第一步:录入:用htmlspecialchars()函数,将编辑器的内容转换为HTML实体,存入数据库;
第二步:取出:从数据库取出后,用htmlspecialchars_decode()函数将HTML实体,解析为字符,浏览器即可正常显示。
这个就像json_encode() 和 json_decode()
可以使用函数:htmlspecialchars_decode
或者html_entity_decode
。
两个函数的功能参见链接:htmlspecialchars_decode 和 html_entity_decode
这两个函数是把 html 特殊字符转成 html 元素显示。
与之相对应的两个函数 htmlspecialchars
和 htmlentities
是把 html 特殊字符转换成 <
这样的编码形式。
你可以参考这个问题:我从数据库拿出的文字多了双引号,导致浏览器不能正常解析,怎么破呢
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答888 阅读✓ 已解决
1 回答569 阅读✓ 已解决
TP这么做事为了数据库的安全
php转译函数
htmlspecialchars
、htmlspecialchars_decode