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 前一天或后一天的日期
Jun 28 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
php自动加载的两种实现方法
Jun 21 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
php debug 安装技巧
Apr 30 PHP
Php-Redis安装测试笔记
Mar 05 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
使用vs code编辑调试php配置的方法
Jan 29 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(1)
2006/10/09 PHP
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
js中url对象化管理分析
2017/12/29 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
微信小程序使用字体图标的方法
2019/05/23 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
对python中各个response的使用说明
2020/03/28 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
婚纱摄影师求职信范文
2014/04/17 职场文书
学党史心得体会
2014/09/05 职场文书
离职证明标准格式
2014/09/15 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
新郎婚礼致辞
2015/07/27 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS