ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法


Posted in PHP onAugust 08, 2014

ThinkPHP的conf文件中的Convention.php有一个配置选项

'DEFAULT_FILTER'        =>  'htmlspecialchars', // 默认参数过滤方法 用于I函数...
默认这个方法是开启的。也就是说,我们往数据库里面存储的数据中都会经过htmlspecialchars这个函数的转义处理。

我在我的项目中使用了Kindeditor富文本编辑器(或许你使用的是Ueditor\ckeditor),通过富文本编辑器编辑文章的内容然后存储到数据库中,再从数据库中读取显示到网页上来。

在这个过程中,我遇到一个问题,当我在insert方法直接显示我将提交到数据库里的文本数据时,能够正常解析成HTML页面,但是当我再从数据库里面读取HTML数据时,文章内容就变成了一整段HTML代码。dump输出我读取到的数组内容,可以很清楚的看到是已经转义的内容。

1.数据库中存储的内容以及读取出来的文章内容实例:

<p>
 你们知道吗?
</p>

2.在html页面中解析出来的内容效果:

“<p>
 <span style="white-space:pre"> </span><img src="/17joys/Public/kindeditor/attached/image/20140807/20140807110915_31727.jpg" alt="" width="800" height="600">
<span style="white-space:pre"> </span></p>”

很明显可以看出,原来应该变成HTML标签的内容现在被解析成了文本里面的内容,而且在文本内容的最外面还加上了双引号。

正常的显示应该是没有双引号的才对。数据库读取出来的数据就是HTML页面的源代码,然后插入HTML页面之后,标签被解释,标签内的内容显示成页面。

通过上面的分析,可以确定,是ThinkPHP在内容存储的过程中自动对内容进行了转义处理,导致了数据库中存储的内容变成了转义后的内容,再次读出来的时候HTML会自动将原本属于标签的内容转义成为正文文本。

所以,果断到TP的conf目录下找convention.php配置文件,将DEFAULT_FILTER功能禁用掉,以后需要使用的时候再手动调用即可。

再次测试,这一次就解决了问题了。

PHP 相关文章推荐
Zend公司全球首推PHP认证
Oct 09 PHP
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
linux iconv方法的使用
Oct 01 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
php jquery 多文件上传简单实例
Dec 23 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
CodeIgniter配置之config.php用法实例分析
Jan 19 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
PHP连接sql server 2005环境配置及问题解决
Aug 08 #PHP
getJSON跨域SyntaxError问题分析
Aug 07 #PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 #PHP
PHP生成数组再传给js的方法
Aug 07 #PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 #PHP
PHP编程中的常见漏洞和代码实例
Aug 06 #PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 #PHP
You might like
php 获取全局变量的代码
2011/04/21 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
JS实现li标签的删除
2019/04/12 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
layui--js控制switch的切换方法
2019/09/03 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
Python Property属性的2种用法
2015/06/21 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
用Python读取几十万行文本数据
2018/12/24 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
电气专业推荐信范文
2013/11/18 职场文书
元旦晚会邀请函
2014/01/27 职场文书
银行简历自我评价
2014/02/11 职场文书
绿色环保演讲稿
2014/05/10 职场文书
委托书的样本
2015/01/28 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技