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 相关文章推荐
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
php过滤XSS攻击的函数
Nov 12 PHP
linux中cd命令使用详解
Jan 08 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 PHP
PHP文件操作方法汇总
Jul 01 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
在laravel中使用with实现动态添加where条件
Oct 10 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
linux下 C语言对 php 扩展
2008/12/14 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
javascript随机显示背景图片的方法
2015/06/18 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
python入门之基础语法学习笔记
2020/02/08 Python
python读写文件write和flush的实现方式
2020/02/21 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
学python需要去培训机构吗
2020/07/01 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python实现京东抢秒杀功能
2021/01/25 Python
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
幼儿园英语教学反思
2014/01/30 职场文书
领导干部群众路线剖析材料
2014/10/09 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python