ThinkPHP使用Ueditor的方法详解


Posted in PHP onMay 20, 2016

本文实例讲述了ThinkPHP使用Ueditor的方法。分享给大家供大家参考,具体如下:

相信很多人现在还在用着FCkeditor,以前我也在用,可是后来发现百度的Ueditor之后,发现,Ueditor比Fckeditor更好看,操作性上也比Fckeditor好多了,所以还是尝试着使用ueditor,但是在ThinkPHP框架下使用ueditor还是遇到了一些问题,也花费了一些时间去解决这些问题,这样,在这里写一个关于ThinkPHP下使用ueditor的教程,给需要使用的人。

1、在网站的根目录下建一个“Public”的文件夹,这个文件夹在ThinkPHP中可以用__PUBLIC__来替换,所以这样方便我们程序的编写,然后将ueditor文件放到这个文件夹中。

2、在我们需要使用ueditor的模板文件中导入ueditor所要使用的js和css,例如,我在App/Tpl/default/Venter/createvent.html中添加以下代码:

<script type="text/javascript" src="__PUBLIC__/ueditor/editor_config.js"></script>
<script type="text/javascript" src="__PUBLIC__/ueditor/editor_all.js"></script>
<link rel="stylesheet" href="__PUBLIC__/ueditor/themes/default/ueditor.css"/>

3、配置Ueditor相对于网站根目录的位置,这里我建议使用绝对路径,即类似于http://localhost:1080这样的路径,因为在网站项目的开发中,很多地方会用到ueditor,但是由于所用到的位置不同便导致当前目录和服务器根目录的相对路径变化,也就使得ueditor无法使用,例如,我配置的路径(配置文件:ueditor目录下的editor_config.js),将一下代码进行替换:

URL= tmp.substr(0,tmp.lastIndexOf("\/")+1).replace("_examples/","");
//这里你可以配置成ueditor目录在您网站的相对路径或者绝对路径(指以http开头的绝对路径)

替换成:

URL = "http://localhost:1080/Public/ueditor/";

4、下面便是一个对表单的使用的应用:

<form action="__ROOT__/index.php/Venter/ventChk" method="post">
  <script type="text/plain" id="Vent" style="width:500px;"></script>
  <input type="checkbox" name="opened" value="1"/>公开发表
  <input type="submit" value="发泄" />
</form>
<!--注册百度ueditor-->
<script type="text/javascript">
  var editor = new baidu.editor.ui.Editor({
    toolbars:[['Spechars','Emotion','InsertImage','Bold','Italic','ForeColor','FontFamily','FontSize', ]],//自定义ueditor工具栏
    initialContent: '<span style="color:#ccc">点击这里发泄吧</span>',
    minFrameHeight: 100,//初始化框架大小
    autoFloatEnabled: false,//工具栏自动浮动-》关闭
    textarea:'myVent'//form表单将通过该参数获得表单提交的数据
  });
  editor.render("Vent");
</script>
<!--百度Ueditor注册完毕-->

如上面代码所示,可以通过$_POST['myVent']来获取Ueditor编辑区的内容。

5、在Thinkphp中如何去使用呢?首先要先将得到的内容提交进行转义,这里我们使用以下代码:

$content = htmlspecialchars(stripslashes(POST['myVent']));

这之后的操作便是将$content插入到数据库中(这里不再多说)。

6、从数据中提取数据并进行转义使得内容可以正常显示:

$vent = new VenterModel;
$list = $vent->select();
$this->assign("list",$list)

这样在相应的html模板中可以这样来显示内容:

<volist name="list" id="vo">
{$vo.content|htmlspecialchars_decode}
</volist>

这里用到了thinkphp模板的一个用法,即可以在模板中使用函数,这里便使用了函数htmlspecialchars_decode来对$vo,content进行转义,上面的代码可以看成是这样:

htmlspecialchars_decode($vo.content),在这里的这个方法的选择上我用了很长时间,当时没有考虑到这个方法,当时只是想着,由于htmlspecialchars_decode函数接受的传值不能是数组,所以从数据库中提取的数据便不能直接传给他,后来想可以通过遍历数组的方法来让数组内每个元素都htmlspecialchars_decode一下,虽然可以将内容转义,但是却不能在模板中显示了,直到最后看了一些官方的手册,才想到了这里,所以做程序,一定要多看看官方的文档,很多问题便能解决。

PHP 相关文章推荐
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
php cookies中删除的一般赋值方法
May 07 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
php表单提交实例讲解
Nov 12 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 PHP
详解PHP设计模式之依赖注入模式
May 25 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 #PHP
thinkphp3.x中session方法的用法分析
May 20 #PHP
PHP编写登录验证码功能 附调用方法
May 19 #PHP
一段实用的php验证码函数
May 19 #PHP
thinkphp3.x中cookie方法的用法分析
May 19 #PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 #PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
May 19 #PHP
You might like
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
python决策树之CART分类回归树详解
2017/12/20 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
使用python模拟高斯分布例子
2019/12/09 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
海外淘书首选:AbeBooks
2017/07/31 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
大学团支书的自我评价分享
2013/12/14 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
人事专员的职责
2014/02/26 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
公司回复函格式
2015/07/14 职场文书
学雷锋活动简报
2015/07/20 职场文书