【一】简介

(1)介绍

一款百度开发的JS插件

ue编辑器,全称Ueditor(翻译为你的编辑器),百度开发的在线编辑器,是一款在线编辑器软件,在线编辑器又称为“富文本编辑器”。

国外也有一款类似的编辑器CKeditor

百度ue编辑器官网网址:http://ueditor.baidu.com

(2)作用

常见的例如新闻文章的发布编辑、格式化新闻、添加图片或视频等。用的时候和Word差不多

为了方便图文的混排

(3)官网演示

UEditor、UEditorMINI两种,简称为UE和UM。UM是UE的简化版本

①UE介绍:UE功能比UM多

②UM介绍:UMeditor,简称UM,是为满足广大门户网站对于简单发帖框,或者回复框需求所定制的在线富文本编辑器。 UM的主要特点就是容量和加载速度上的改变,主文件的代码量为139k,而且放弃了使用传统的iframe模式,采用了div的加载方式, 以达到更快的加载速度和零加载失败率。现在UM的第一个使用者是百度贴吧,贴吧每天几亿的pv是对UM各种指标的最好测试平台。 当然随着代码的减少,UM的功能对于UE来说还是有所减少,但我们经过调研和大家对于UM提出的各种意见,提供了现在UM的功能版本, 虽然有删减,但也有增加,比如拖拽图片上传,chrome的图片拖动改变大小等。让UM能在功能和体积上达到一个平衡。UM还会提供 CDN方式,减少大家部署的成本。我们的目标不仅是要提高在线编辑的编辑体验,也希望能改变前端技术中关于富文本技术的门槛,让大家不再觉得这块是个大坑。

(4)下载

推荐直接下载开发版的UTF-8版即可

(5)解压后查看index.html源码

    <script type="text/javascript" charset="utf-8" src="ueditor.config.js"></script>
<!-- 配置文件 -->
<script type="text/javascript" charset="utf-8" src="ueditor.all.min.js"> </script>
<!-- 类库文件 -->
<script type="text/javascript" charset="utf-8" src="lang/zh-cn/zh-cn.js"></script>
<!-- 语言文件 -->
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->

代码块:编辑内容区域在<script id="editor" type="text/plain">,主要通过id="editor"实例化

<div>
<h1>完整demo</h1>
<script id="editor" type="text/plain" style="width:1024px;height:500px;"></script>
</div>

实例化编辑器代码:

<script type="text/javascript">
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
var ue = UE.getEditor('editor');
</script>

总结:

(1)通过demo文件里的index.html代码,分析后可以发现,一共3步即可实现------①引入外部js文件;②定义容器editor;③实例化容器,生成编辑器效果

(2)之所以没有引入css文件的步骤,因为在底层代码js里便用了css了

【二】应用实例

接着上篇文章视频学习笔录---ThinkPHP---TP功能类之公文管理功能,使用UE编辑器替换掉公文管理的textarea效果

接下来按照步骤进行

(1)将utf8-php解压目录复制到公共静态资源文件目录下的插件目录(plugin插件目录),和用Highcharts一样直接将整个解压文件复制过来

并改名为ue,方便后期查看

(2)按照上面的demo三步骤进行文件引入、定义容器、实例化容器,生成编辑器

注意:容器可以直接将textarea标签的id替换掉,或者将整个<script>标签复制过来

(3)优化显示效果:适当调整即可

调整后结果

(4)开始修改控制器

①先来测试看下提交后的数据

$post = I('post.');
dump($post);die;

输出结果:

array(3) {
["title"] => string(6) "新的"
["author"] => string(3) "旺"
["editorValue"] => string(207) "&lt;p&gt;我是内容&lt;
img src=&quot;/ueditor/php/upload/image/20180402/1522640195528516.jpg&quot;
title=&quot;1522640195528516.jpg&quot;
alt=&quot;008ba1edbe4c0365a538b71189546615.jpg&quot;/&gt;&lt;/p&gt;"
}

②需要对输出的数据进行操作,否则会被过滤

两个问题:

问题1. UE编辑器默认name为editValue,和数据表的字段名不一样,后期添加会被过滤掉;

解决办法:给当前容器标签指定一个name值,等于数据表字段即可

原先的容器为:

            <p><label for="content">内容:</label>
<!-- <textarea name="content" id="editor"></textarea> -->
<script id="editor" name="content" type="text/plain" style="width:800px;height:300px;"></script>
</p>

现在给容器加上name,(name值为数据表字段)

<script id="editor" name="content" type="text/plain" style="width:800px;height:300px;"></script>

再次打印输出,结果为:

array(3) {
["title"] => string(6) "新的"
["author"] => string(3) "旺"
["content"] => string(63) "&lt;p&gt;&lt;strong&gt;萨克斯哪块&lt;/strong&gt;&lt;/p&gt;"
}

问题2. 在UE编辑器源码中的一些样式会被转化为实体字符,那么是谁去转化的实体字符?

有两种可能,UE编辑器或者ThinkPHP,此处转码由ThinkPHP的I方法转化的,使用的是htmlspecialchars。

拓展:关于UE的几个说明

①防止SQL注入和XSS跨站脚本攻击;只通过I方法无法解决,后面用插件htmlpurifiy来对指定的标签进行过滤。

②关于UE中的表情使用,需要联网;

③图片上传,该功能需要配置,配置文件ue/php/config.php。需要指定路径,否则会自动创建文件uedotor

上传后自动创建路径对应文件ueditor,上传的图片会存在该目录下

④读取时需要将数据表中的实体字符进行还原,使用函数htmlspecialchars_decode(html特殊字符解码)进行还原

【三】上传类

具体在下片文章做介绍

.

ThinkPHP---ue编辑器的更多相关文章

  1. UE编辑器编译和运行java设置

    工具原料: UE编辑器 1点击“高级”,再点击“工具配置”. 2点击“插入”,在“菜单项”名称上输入“编译java程序”,在“命令行”里输入“javac %n%e”,在工作目录上填“%p”. 3切换到 ...

  2. thinkphp 百度编辑器和layer简单用法

    百度编辑器1.4.3.3和layer插件简单案例 :后台单页面管理 增删改查操作 此处为默认图片保存路径,如果要修改保存路径,需要修改config文件. 添加页. <extend name=&q ...

  3. Thinkphp 文本编辑器

    文本编辑器:可以从网上下载---ueditor文件夹里面包含php和utf8-php两个文件夹 平时使用时主要用到获取内容和写入内容两个按钮 获取内容: <!DOCTYPE html PUBLI ...

  4. vue2.0集成百度UE编辑器,上传图片报错!!!

    我这边配置进去之后,界面加载,文本输入都没有问题,就是上传图片会有问题 这张图, 左边红色框框 就是目录结构咯, 右边红色框框 就是各种网上教程给出的第一个路径配置对吧, 下面的就是绿色 服务器接口配 ...

  5. UE编辑器

    引用ue的js 下载地址http://pan.baidu.com/s/1gdrQ35L <script type="text/javascript" src="__ ...

  6. UE编辑器FTP无法连接

    解决办法:http://wenwen.sogou.com/z/q197743020.htm 无法从ue连接到主机,一直就是这样的状态 1. ftp帐户密码都没有问题: 2. 后台主机也没有问题: 3. ...

  7. UE编辑器加载格式化代码插件astyle

    UE 的格式化功能不强,自带的astyle版本陈旧,一般采用开源工具astyle来实现代码格式化. 1. 首先下载最新的astyle,因为ue自带的astyle版本太老,不支持空格.中文名等. 2. ...

  8. 百度UE编辑器从word粘贴公式

    图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用,但是项目要求需要支持所有的浏览器,包括Windows和macOS系统.没有办 ...

  9. 【开源】SoDiaoEditor 可能是目前最好用的开源电子病历编辑器(B/S架构)

    此刻我的内心是忐忑的,这个标题给了我很大的压力,虽然很久以前我就在github上搜索一圈了,也没发现有其他更好的开源电子病历编辑器,如各位亲发现有更好的,烦请知会我一声. 该编辑器其实已经憋了很久了, ...

随机推荐

  1. 洛谷 P1759 通天之潜水

    P1759 通天之潜水 19通过 65提交 题目提供者lych 标签动态规划洛谷原创 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目背景 直达通天路·小A历险记第三篇 题目 ...

  2. CSP 201703-4 地铁修建【最小生成树+并查集】

    问题描述 试题编号: 201703-4 试题名称: 地铁修建 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市 ...

  3. MySQL5.7修改字符集

    本人安装的mysql版本是5.7.20,安装好mysql后就要对字符集进行修改了,于是照着网上的大部分教程说的去安装目录找一个my-default.ini文件,然后重命名为my.ini,再对其进修改字 ...

  4. Java:EL表达式

    ylbtech-Java:EL表达式 EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 ...

  5. MySQL Archive存储引擎

    200 ? "200px" : this.width)!important;} --> 介绍 从archive单词的解释我们大概可以明白这个存储引擎的用途,这个存储引擎基本上 ...

  6. EntityFramework:An error occurred while executing the command definition. See the inner exception for details.

    错误描述: 调用EF中的FirstOrDefault()时,报错误:An error occurred while executing the command definition. See the ...

  7. spring cloud config搭建说明例子(四)-补充配置文件

    服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</groupId> ...

  8. phpAnalysis调试接口

    phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发.测试及生产环境部署使用,方便开发及测试工程师诊断性能问题: 通过tideways收集PHP程序单步运行过程中所有的函数调用时 ...

  9. 微信小程序资源

    1.http://blog.csdn.net/wyx100/article/details/52667518 2.http://mp.weixin.qq.com/s?__biz=MzIyMDM2Mjg ...

  10. C#中接受一个非字符串的输入

    接受来自用户的值 System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中. 例如: int num; num = Conve ...