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来检测proxy
Oct 09 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
php将数据库导出成excel的方法
May 07 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
php中序列化与反序列化详解
Feb 13 PHP
php实现数据库的增删改查
Feb 26 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 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 默默经典版本
2009/08/04 PHP
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
php常用正则函数实例小结
2016/12/29 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
Python的Flask框架与数据库连接的教程
2015/04/20 Python
Python类的用法实例浅析
2015/05/27 Python
python交互式图形编程实例(一)
2017/11/17 Python
python合并同类型excel表格的方法
2018/04/01 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
实习护理工作自我评价
2013/09/25 职场文书
关于旷工的检讨书
2014/02/02 职场文书
建筑安全标语
2014/06/07 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
特岗教师个人总结
2015/02/10 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书