本文实例讲述了Laravel框架集成UEditor编辑器的方法。分享给大家供大家参考,具体如下:

一、 背景

在项目开发的过程中,免不了使用修改功能,而富文本编辑器是极为方便的一种推荐,当然,个人认为 MarkDown 更为简单,但是感觉暂时只适合程序猿

此文介绍如何在 Laravel5.5 框架中集成使用富文本编辑器 UEditor

ps : 其实编辑器只是一个工具,举一反三可以用在各种代码语言或框架中

二、 探讨

通过网上求知,发现主要有两种方法实现

①. 第一种是使用 composer 进行安装,可推荐参考文章 Laravel-u-editor,个人试过,无法上传图片 …

②. 第二种是到 UEditor 官方下载源包自行配置(下文主要为此操作)

ps : [如果有哪位能够成功实现第一种方案,请告诉鄙人一下,万分感谢!]

三、操作步骤

❶. 下载对应的源码包

可点击进入下载地址,本人下载的是最新 PHP(UTF-8) 版本

❷. 放置在 Public 目录下

将解压后的文件夹,放置在 Public 目录下,本人只是将文件夹名字改动了一下.

❸. 前端文件配置

详情可参考 官方文档

以本人为例:

①. 首先在当前页面,需要引入 js 文件,注意类比src的正确引用.

var ue = UE.getEditor('ue-container');

ue.ready(function(){

ue.execCommand('serverparam', '_token', '{{ csrf_token() }}');

});

②. 在需要显示富文本编辑器的位置,补充如下代码

@php

echo htmlspecialchars_decode($article['content']);

@endphp

③. 实现效果如下:

❹. 补充

①. 在进行 form 表单提交时,将获得 name="content" 所传输的数据写入数据库即可,而对应在数据库中存储的数据如下所示:

        开场后,第32秒,佩顿在朗多投篮时犯规,送给鹈鹕2次罚球机会。第1分35秒,考辛斯妙传,朱-霍勒迪三分远投命中。

第7分28秒,佩顿手滑丢球,被考辛斯抢断。鹈鹕对篮板发起疯狂进攻,本节共抢下16个篮板,包括6个前场篮板,其中戴维斯一人就贡献4个篮板球。

②. 当取得了上述数据,若要在前端进行显示,需要执行类似的转化代码:

echo htmlspecialchars_decode($article['content']);

③. 在富文本编辑器中,图片的大小可自行调整.

四、扩展学习

♩. 图片上传路径

其实,如果只是个简单的小网站或者学生的课设项目,无需修改,上传的图片会默认放置在 Public/ueditor/php/upload/image/ 目录下

如果需要修改,可进入php/config.json 文件,找到配置项 "imagePathFormat" 进行符合需求的修改,建议可以让文件名较长一些以避免重名:

[注]:

个人初始测试发现,文件命名时的“{rand:6}”定义无法实现,网上却没有类似的解决方法,解决方案请参考后面的 ***【附录】***.

♪. 图片访问前缀

如果使用了多个服务器,设置统一的图片访问前缀极有必要,可配置参数“imageUrlPrefix”,例如我的配置路径可以为:“http://lar5Pro.com”

这样一来,存入数据库中的图片路径都会加上了此前缀.

五、附录

♭. 图片文件名 {rand:$num} 解决

刚开始想到使用时间戳加文件原名称来作为名字,但是当有中文字符时无法上传。

其实原本的ThinkPHP框架中也集成过UEditor,但是没有这种问题,通过阅读源码,找到正则表达式的匹配位置 Public/ueditor-mz/php/Uploader.class.php

大概在 304 行左右,原因是rand() 取值太大可能导致部分环境报错

个人觉得数字的命名不如字母好些,于是代码替换为如下的样子:

//TODO 替换随机字符串 数值太大可能导致部分环境报错

$randNum = rand(100000, 10000000) . rand(100000, 10000000);

//也可用使用md5()或两者的组合

$randNum = base64_encode($randNum);

♫. 呵呵

真是尴尬了,方案一测试多遍依然不成功,所以钟情于第二种方案 …

HELP !HELP!HELP!

【补充问题】(2018-02-06):

emm楼主第一种上传不了图片的问题我当时也遇到过,最后发现是接口路径没配置好。在laravl-u-editor 目录下 ueditor.config.js文件 中修改33行左右的 serverUrl,改成对应的路径即可。

这个问题,可以参考 相应文章的提示,下次有机会可以尝试一番…

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

ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解相关推荐

  1. 系列 《使用sklearn进行集成学习——理论》 《使用sklearn进行集成学习——实践》 目录 1 Random Forest和Gradient Tree Boosting参数详解 2 如何调参?

    系列 <使用sklearn进行集成学习--理论> <使用sklearn进行集成学习--实践> 目录 1 Random Forest和Gradient Tree Boosting ...

  2. Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)

    Laravel Excel实现Excel/CSV文件导入导出(合并单元格,设置单元格样式) 这篇文章主要给大家介绍了关于在Laravel中如何使用Laravel Excel实现Excel/CSV文件导 ...

  3. C++框架_之Qt的信号和槽的详解

    目录 C++_之Qt的信号和槽的详解 1.概述 1.1对象树(子对象动态分配空间不需要释放) 2.信号和槽 Qt5 的书写方式:(推荐的使用)★★★★★ Qt4 的书写方式: 3.自定义信号槽 3.1 ...

  4. RPC框架的实现原理,及RPC架构组件详解

    RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...

  5. laravel框架集成PHPExcel讲解及demo

    首先,由于业务需求,需要把一些数据用excel导出,给硬件人员看.由于我自己用的是laravel 的一键安装包,所以使用laravel自带的Excel就成为了一种奢望.因此,这里使用PHPExcel, ...

  6. 机器学习算法[9]--集成方法之XGBoost原理详解及XGBoost库实现

    机器学习 1. XGBoost 1.1 原理 1.1.1 算法解析 1.1.2 算法流程 1.2 XGBoost库实现 1. XGBoost 1.1 原理 XGBoost(Extreme Gradie ...

  7. 怎么理解集成运放并联电压正反馈_「硬见小百科」详解运放及其补偿技术

    运放补偿虽然很常见,但有时候也极具挑战性,尤其是在要求和约束条件超过设计师控制的情况下,设计师必须选择一种最优补偿技术之时.也许极具挑战性的原因之一是一般文献资料更多地专注于不同补偿技术之间的区别而不 ...

  8. php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    @H_404_0@ 1.简介 @H_404_0@本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍 ...

  9. pytest框架快速入门-pytest运行时参数说明,pytest详解,pytest.ini详解

    废话少说,我们直接上干货. 一.Pytest简介 1.pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点: 简单灵活,容易上手,支持参数化 2.能够支持简单的单元测试和复杂的 ...

最新文章

  1. 洛谷 1658 购物
  2. Scala元组数据的访问
  3. O-R mapping工具
  4. 反射应用和获取Class对象的三种方式
  5. [NewLife.XCode]高级增删改
  6. Jakarta EE中的规范范围
  7. mysql orderby多个_MySQL OrderBy
  8. TCP的流模式与UDP的报文模式对比
  9. CAF(C++ actor framework)(序列化之结构体,任意嵌套STL)(一)
  10. 作者:杨晋吉(1968-),男,华南师范大学计算机学院教授。赵淦森(1977-),男,博士,华南师范大学计算机学院教授、副院长。...
  11. ip代理服务器8需要云速捷_nginx获取真实ip,proxy_set_head怎么设置头部信息
  12. 控制系统设计专题(三)——自抗扰控制算法(下)
  13. 空间怎么不能设置html,空间首页登陆 登陆QQ空间怎么将主页设置为首页?
  14. Excel之VBA简单宏编程
  15. 微软:从“开源是毒瘤”到“我爱 Linux”的 20 年
  16. 从零开始学习CANoe(六)—— CAPL 测试节点
  17. L - Evenly Separated Strings
  18. 花费巨资去培训SAP真的值得吗?
  19. 第三方平台创建小程序步骤
  20. 如何将白鹭引擎开发的游戏通过Egret Native发布到 GooglePlay平台

热门文章

  1. 发布新模板-画情画心
  2. springMVC保存数据到mysql数据库中文乱码问题解决方法
  3. ssh_exchange_identification: Connection closed by remote host 解决方法
  4. 在PL/SQL里直接插入日期时提示 is not a valid date and time的解决方法
  5. 宝塔控制面板创建ftp后链接不上的解决方法
  6. 在IIS6.0下ASP .NET 的版本冲突问题
  7. flask常见面试题
  8. “汇新杯”新兴科技+互联网创新大赛青年创客专项赛决赛
  9. CC攻击介绍及如何防御
  10. Nginx防盗链与访问控制