储存的富文本编辑器的内容导致读取错误ThinkPHP自动逃生方法
在ThinkPHP conf文件convention.php有一个配置选项default_filter= > 'htmlspecialchars ' / /默认参数滤波方法对我的作用…
该方法默认是打开的。也就是说,我们都在数据库中存储的数据将由htmlspecialchars函数处理。
在我的项目中,我使用kindeditor富文本编辑器(也许你使用UEditor CKEditor)通过富文本编辑器编辑文章的内容,然后保存到数据库,然后从数据库读取和显示的网页。
在这个过程中,我遇到了一个问题,当我直接出现在插入的方法我将提交到数据库中的文本数据,可以解析成普通的HTML页面,但是当我读的HTML数据从数据库的内容成为HTML代码一整节。转储输出我读数组的内容,你可以清楚地看到的内容已经丢失。
存储在1中的内容。数据库和阅读文章的内容实例:
你知道吗
2。在HTML页面中解析的内容效果:
显然,可以看出,原来是HTML标记的内容现在被解析为文本的内容,文本的最外面部分有双引号。
正常显示应该没有双引号,数据库读取的数据是HTML页面的源代码,在插入HTML页面之后,标签被解释,标签中的内容显示为一个页面。
通过以上分析,可以确定,是存储在内容自动转义处理ThinkPHP,导致存储在数据库中的内容后逃逸,HTML会自动属于标签文本的内容读出来逃跑了。
所以,坚决在TP conf目录找到convention.php配置文件,禁用default_filter功能,和手动调用它时,你需要使用它。
再次测试,这一次解决了问题。