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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
一篇入门的php Class 文章
Apr 04 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
Mar 15 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 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学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
python定时执行指定函数的方法
2015/05/27 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
django站点管理详解
2017/12/12 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
使用python实现多维数据降维操作
2020/02/24 Python
Python 必须了解的5种高级特征
2020/09/10 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
阿德的梦教学反思
2014/02/06 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
工资证明范本
2015/06/12 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
MySQL数据库完全卸载的方法
2022/03/03 MySQL