同一页面放多个百度编辑器 Ueditor 并用PHP获取 Ueditor 的值的实例

 更新时间:2016年11月25日 17:36  点击:2294
UEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,本文我们解决在同一个页面上如何放多个 UEditor ,然后再用 PHP 接收 UEditor 的值。

同一个网页如何放置多个Ueditor?

参考代码如下:

    <form  method="post" action="save.php">

    <script type="text/plain" id="ueditorId_1" name="ueditorName_1" style="width: 400px;height:500px;">编辑器的默认值_1</script>

    <script type="text/javascript">
        UE.getEditor('ueditorId_1');
    </script>

     

    <script type="text/plain" id="ueditorId_2" name="ueditorName_2" style="width: 450px;height:550px;">编辑器的默认值_2</script>

    <script type="text/javascript">
        UE.getEditor('ueditorId_2');
    </script>

    </form>

这样,就会在页面中渲染2个Ueditor编辑器。

PHP如何获取多个Ueditor的值?

注意,上面的 ueditorName_1,ueditorName_2 即为表单的Name值,所以服务端PHP获取Ueditor编辑器的值变得很简单,参考代码如下:

    $_POST["ueditorName_1"];  // 第一个编辑器的值

    $_POST["ueditorName_2"];  // 第二个编辑器的值
    

解决百度 ueditor v1.4.3 编辑器上传图片失真的bug?


项目中,用到百度ueditor编辑器,发现,上传大一点的图片,图片会失真,刚开始还以为是PHP端做了图片压缩,仔细看配置说明,发现是编辑器自带有个自动压缩图片的功能,可恶的是,压缩后的图片失真了!

决定去掉这个压缩功能,如果非得要压缩,那就交给服务端PHP来处理吧!

找到配置文件:ueditor/php/config.json

把 imageCompressEnable 设置为 false 即可!

 
【总结】有2个比较重要的配置文件:

    ueditor/ueditor.config.js

    ueditor/php/config.json

file_get_contents如果文件或者路径是中文就会出现[function.file-get-contents]: failed to open stream: No such file or directory,这个是编码问题,Windows中是使用gbk中文编码的,而PHP文件一般都是用utf-8格式保存的了。中文地址获取之前做一次iconv('utf-8', 'gbk', $address)就没有问题了

解决file_get_contents遇到中文文件名无法打开问题

比如:受访页面_20151202-20151202.csv

file_get_contents(受访页面_20151202-20151202.csv)就会报错

[function.file-get-contents]: failed to open stream: No such file or directory

改成不用包含中文的文件名路径就可以。

原因:

编码问题,Windows中是使用gbk中文编码的,而PHP文件一般都是用utf-8格式保存的了。中文地址获取之前做一次iconv('utf-8', 'gbk', $path)就没有问题了。

<?php
    $path='/baidu/受访页面_20151203-20151203.csv';
    $path=iconv('utf-8', 'gbk', $path);
    $content=  file_get_contents($path);
    echo $content;
?>

phpexcel是一款php读写excel的插件了,小编有一个这样的功能要来实现,但是在导入xlsx时发现xlsx is not recognised as an OLE file 了,但是导入xls是没有问题了,碰到这种问题我们来看小编的解决办法。

最初的做法

 代码如下 复制代码

include 'classes/PHPExcel/IOFactory.php';

$inputFileName = $target;


$objReader = new PHPExcel_Reader_Excel5(); 

$objPHPExcel = $objReader->load($inputFileName);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$count = count($sheetData);
for($i=1;$i<=$count;$i++)
{
 echo (iconv('utf-8','gbk',$sheetData[$i]['A'])).'<hr />';
}

报错

 PHPExcel_Reader_Exception: The filename .1443578799.xlsx is not recognised as an OLE file in Classes\PHPExcel\Shared\OLERead.php on line 89

( ! ) Fatal error: Uncaught exception 'PHPExcel_Reader_Exception' with message 'The filename 1443578799.xlsx is not recognised as an OLE file' in Classes\PHPExcel\Shared\OLERead.php on line 89
( ! ) PHPExcel_Reader_Exception: The filename 1443578799.xlsx is not recognised as an OLE file in Classes\PHPExcel\Shared\OLERead.php on line 89
Call Stack

碰到这个问题我们是因为xlsx出错了,可能通过类型判断 解决办法如下

 代码如下 复制代码

if( $extension =='xlsx' )
{
 $objReader = new PHPExcel_Reader_Excel2007();
}
else
{
 $objReader = new PHPExcel_Reader_Excel5();
}

这样再操作会发现问题已经解决了。

PHPMyAdmin编辑数据库表一直提示”正在加载”问题要如何来解决呢,碰到这种问题我们可以通过下面的方法来解决了,具体的操作步骤如下图所示。
一般对于普通的VPS主机用户需求来说,我们会熟悉1-2种一键包或者WEB面板工具部署网站环境,会添加站点和数据库部署站点,以及勤奋一点定期备份数据,基本上还是可以满足基本的VPS主机应用的。上午的时候有遇到一个网友提出来在网站搬家过程中出现PHPMyAdmin加载问题。

 

因为其在搬家网站过程中,需要登录PHPMyAdmin页面客户端然后编辑修改WORDPRESS原本数据库绑定的网站域名(应该是更换站点域名需求),但是点击编辑数据库表的时候出现"正在加载"问题。这个问题老左还是第一次遇到,因为如果遇到PHPMyAdmin访问速度慢都还好解决(解决PHPMyAdmin打开和访问较慢的2种方法)。

 

解决PHPMyAdmin编辑数据库表一直提示"正在加载"问题

 

这里老左也搜索网上看看有没有其他用户的解决方法:

 

第一、修改配置文件

 

这个方法来自网络上的,按照说明是针对phpmyadmin 4.0.2 php 5.5.0版本可以使用。

 

1、到PHPMYADMIN文件目录找到libraries/Util.class.php文件,找到

 

 代码如下 复制代码

    # 查找
return strftime($date, $timestamp);

# 替换成如下代码:
if(extension_loaded('gettext'))
return strftime($date, $timestamp);

# 中国区这样设置.
date_default_timezone_set('UTC');
return gmdate('Y-m-d H:i:s', $timestamp + 28800);

 

2、保存文件替换,根据提示是可以解决的。

 

第二、修改防火墙设置

 

这里老左看到这个朋友使用的是PHPMYADMIN4.4.15版本,而且对应的上面的文件是不一样的,所以修改之后还是有错误提示。正准备放弃的时候无意中问了一句这个朋友VPS是否有用到防火墙软件工具,其告知是有用到。应该问题就在这里了,可能防火墙直接判断操作数据库可能会认为是SQL注入问题,于是给屏蔽当前的IP。

 

解决方法:我们要么关闭防火墙工具,等操作完毕之后再开启,或者将我们操作数据库时候的本地IP地址添加白名单,这样就没有问题。

 

总结,到目前为止PHPMyadmin数据库管理出现"正在加载"的问题是可以解决的,如果有其他朋友没有解决或者还有其他方法可以分享出来。
在使用file_put_contents时会碰到并发性问题了,对于这个问题我们有多种解决方案了,其实锁是小编比较喜欢的解决办法了,当然也有其它办法,具体如下。


解决 办法一,file_put_contents 高并发与独占锁定

 

发现高并发访问时使用 file_put_contents 写入文件造成数据置空。

查看官方文档:

 

int file_put_contents ( string $filename , string $data [, int $flags [, resource $context ]] )
参数:

 

filename 要被写入数据的文件名。 data 要写入的数据。类型可以是 string,array 或者是 stream 资源(如上面所说的那样)。 flags flags 可以是 FILE_USE_INCLUDE_PATH,FILE_APPEND 和/或 LOCK_EX(获得一个独占锁定),然而使用 FILE_USE_INCLUDE_PATH 时要特别谨慎。 context 一个 context 资源。
直接直至 flags 参数为 LOCK_EX 即可在高并发时获得一个独占锁定。

另外,flock 函数的也提供了文件锁定方法:

 
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 进行排它型锁定
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // 释放锁定
} else {
echo "Couldn't lock the file !";
}
fclose($fp);

 

注意 flock() 需要一个文件指针。

 

方法二,file_put_contents() 存在高并发问题,Smarty中处理方式如下。

<?php

 

define("FILE_PUT_CONTENTS_ATOMIC_TEMP", dirname(__FILE__)."/cache");

define("FILE_PUT_CONTENTS_ATOMIC_MODE", 0777);

 

function file_put_contents_atomic($filename, $content) {

 

    $temp = tempnam(FILE_PUT_CONTENTS_ATOMIC_TEMP, 'temp');

    if (!($f = @fopen($temp, 'wb'))) {

        $temp = FILE_PUT_CONTENTS_ATOMIC_TEMP . DIRECTORY_SEPARATOR . uniqid('temp');

        if (!($f = @fopen($temp, 'wb'))) {

            trigger_error("file_put_contents_atomic() : error writing temporary file '$temp'", E_USER_WARNING);

            return false;

        }

    }

 

    fwrite($f, $content);

    fclose($f);

 

    if (
!@rename($temp
, $filename)) {

        @unlink($filename);

        @rename($temp, $filename);

    }

 

    @chmod($filename, FILE_PUT_CONTENTS_ATOMIC_MODE);

 

    return true;

 

}

 

?>

[!--infotagslink--]

相关文章

  • 百度编辑器ueditor修改图片上传默认路径

    本案例非通用,仅作笔记以备用 修改后的结果是 百度编辑器里上传的图片路径为/d/file/upload1...2014-07-03
  • 如何在.Net版本UEditor中添加一个普通按钮

    这篇文章主要介绍了如何在.Net版本UEditor中添加一个普通按钮,需要的朋友可以参考下...2021-09-22
  • 超漂亮的Bootstrap 富文本编辑器summernote

    Summernote 是一个简单,灵活,所见即所得(WYSIWYG)的编辑器,基于 jQuery 和 Bootstrap 构建。对bootstrap 文本编辑器相关知识感兴趣的朋友一起学习吧...2016-04-06
  • 帝国CMS会员注册字段增加编辑器、发送短消息改为编辑框

    通过本教程可以实现帝国CMS后台给前台注册用户发消息,把内容输入框改为编辑器,可上传图片,等打开文件\e\admin\member\SendMsg.php 大约84行<textarea name="msgtext" cols="6...2016-01-27
  • ASP.NET百度Ueditor编辑器实现上传图片添加水印效果

    这篇文章主要给大家介绍了ASP.NET百度Ueditor编辑器1.4.3这个版本实现上传图片添加水印效果的相关资料,文中通过图文及示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。...2021-09-22
  • C# RichTextBox制作文本编辑器

    这篇文章主要为大家详细介绍了C# RichTextBox制作文本编辑器的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • KindEditor编辑器调用方法

    KindEditor编辑器调用方法,这个编辑器可使用到任何语言中,他是一个纯js的编辑器,但它默认的编辑是utf-8如果是gb2312编辑的朋友就是KindEditor.js打开,重保存为gb2312...2016-11-25
  • C#实现简单文本编辑器

    这篇文章主要为大家详细介绍了C#实现简单文本编辑器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 同一页面放多个百度编辑器 Ueditor 并用PHP获取 Ueditor 的值的实例

    UEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,本文我们解决在同一个页面上如何放多个 UEditor ,然后再用 PHP 接收 UEditor 的值...2016-11-25
  • PHP编辑器PhpStrom运行缓慢问题

    小编推荐的这篇文章介绍了PHP编辑器PhpStrom运行缓慢问题的解决办法,有兴趣的同学快来看看吧 最近在使用phpstorm开发项目的时候,在加载文件运行时,不管有多大,如果项...2017-07-06
  • 浅析Yii2集成富文本编辑器redactor实例教程

    yii2集成另外一个强大好用的富文本编辑器Redactor。接下来通过本文给大家介绍Yii2集成富文本编辑器redactor实例教程,感兴趣的朋友一起学习吧...2016-04-28
  • 一步步教你在Asp.net Mvc中使用UEditor编辑器

    大家都知道ueditor是百度编辑器,目前使用也比较广泛,下面这篇文章主要是通过一步步的步骤教大家在Asp.net Mvc中使用UEditor编辑器,需要的朋友可以参考借鉴,下面来一起看看吧。...2021-09-22
  • ArtEditor富文本编辑器增加表单提交功能

    artEditor是一款基于jQuery的移动端富文本编辑器,支持插入图片,后续完善其他功能。接下来通过本文给大家介绍ArtEditor富文本编辑器增加表单提交功能,对arteditor编辑器相关知识感兴趣的朋友一起学习吧...2016-04-19
  • 如何在sublime编辑器中安装python

    这篇文章主要介绍了如何在sublime编辑器中安装python,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-20
  • php 中调用fckeditor网页编辑器方法

    下面中要在html 中调用就行了 <script src=”fckeditor/fckeditor.js”></script> <script type=”text/网页特效”> function showfck(){...2016-11-25
  • yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法

    这篇文章主要介绍了yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法的相关资料,需要的朋友可以参考下...2016-04-23
  • Unity编辑器下重启的方法

    这篇文章主要介绍了Unity编辑器下重启的方法的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下...2020-04-25
  • dotnet封装的kindeditor编辑器控件

    KindEditor很不错,没有ForNet的扩展,我是搞.net开发的,就用它简单封装了一个控件,拖过来即可使用,使用更加简单...2021-09-22
  • 新浪在线可视化编辑器PHP版

    调用 <?php /** * 新浪博客编辑器PHP版封装类调用方法 * */ header(\'Content-Type:text/html;Charset=utf-8;\'); include_once(\'sinaEditor.class.php\'...2016-11-25
  • fckediter、 tiny_mce 编辑器安装方法

    fckediter: 效果图: 用法: 首先去网上下载fckediter,然后按着这四步来: 1.复制fckeditor到网站跟目录下 2.复制fredck.fckeditorv2.dll到bin目录下,再添加引用 3.配web.con...2016-09-20