ThinkPHP使用Ueditor的方法详解

 更新时间:2016年05月20日 09:56:51   作者:losetowin  
这篇文章主要介绍了ThinkPHP使用Ueditor的方法,详细分析了thinkPHP框架整合Ueditor编辑器的具体步骤与相关实现技巧,需要的朋友可以参考下

本文实例讲述了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一下,虽然可以将内容转义,但是却不能在模板中显示了,直到最后看了一些官方的手册,才想到了这里,所以做程序,一定要多看看官方的文档,很多问题便能解决。

PS:这里推荐几款本站的格式化/美化/转换工具可以帮助你整理杂乱无章的代码,相信大家在以后的开发中能够用得上:

php代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat

JavaScript代码美化/压缩/格式化/加密工具:
http://tools.jb51.net/code/jscompress

在线XML格式化/压缩工具:
http://tools.jb51.net/code/xmlformat

JSON代码格式化美化工具:
http://tools.jb51.net/code/json

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

sql代码在线格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《PHP中cookie用法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

相关文章

  • PHP不使用递归的无限级分类简单实例

    PHP不使用递归的无限级分类简单实例

    下面小编就为大家带来一篇PHP不使用递归的无限级分类简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • thinkPHP实现的联动菜单功能详解

    thinkPHP实现的联动菜单功能详解

    这篇文章主要介绍了thinkPHP实现的联动菜单功能,结合实例形式分析了thinkPHP联动菜单的实现步骤与具体操作技巧,需要的朋友可以参考下
    2017-05-05
  • Laravel5.5新特性之友好报错以及展示详解

    Laravel5.5新特性之友好报错以及展示详解

    这篇文章主要给大家介绍了关于Laravel5.5新特性之友好报错以及展示的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • 解决laravel5.4下的group by报错的问题

    解决laravel5.4下的group by报错的问题

    今天小编就为大家分享一篇解决laravel5.4下的group by报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP中的reflection反射机制测试例子

    PHP中的reflection反射机制测试例子

    这篇文章主要介绍了PHP中的reflection反射机制测试例子,从本文可以学到一些反射的使用方法,需要的朋友可以参考下
    2014-08-08
  • ThinkPHP框架实现的微信支付接口开发完整示例

    ThinkPHP框架实现的微信支付接口开发完整示例

    这篇文章主要介绍了ThinkPHP框架实现的微信支付接口开发,结合完整实例形式详细分析了基于thinkPHP框架的微信支付接口操作步骤、实现技巧与相关注意事项,需要的朋友可以参考下
    2019-04-04
  • 开源php中文分词系统SCWS安装和使用实例

    开源php中文分词系统SCWS安装和使用实例

    这篇文章主要介绍了开源php中文分词系统SCWS安装和使用实例,需要的朋友可以参考下
    2014-04-04
  • php使用json_encode对变量json编码

    php使用json_encode对变量json编码

    这篇文章主要是说明 json_encode 使用时一个需要注意的细节,无论返回的是数组还是 json,都不代表这一定就是个错误的返回结果,当前端需要的数组时,数组就是正确的结果,反之亦然
    2014-04-04
  • yii框架结合charjs实现统计30天数据的方法

    yii框架结合charjs实现统计30天数据的方法

    这篇文章主要介绍了yii框架结合charjs实现统计30天数据的方法,涉及Yii框架日期运算、数据查询相关操作技巧,需要的朋友可以参考下
    2020-04-04
  • 让CodeIgniter数据库缓存自动过期的处理的方法

    让CodeIgniter数据库缓存自动过期的处理的方法

    按官方的说法,缓存设置后永不过期,除非你调用方法主动删除。这篇文章主要介绍了CodeIgniter数据库缓存自动过期的处理,需要的朋友可以参考下
    2014-06-06

最新评论