• FCKeditor使用方法技术详解


    1、概述

    FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScript编写。具备功能强大、配置容易、跨浏览器、支持多种编程语言、开源等特点。它非常流行,互联网上很容易找到相关技术文档,国内许多WEB项目和大型网站均采用了FCKeditor(如百度,阿里巴巴)。本文将通过与PHP相结合,从基本安装到高级的配置循序渐进介绍给广大PHPer

    FCKeditor官方网站:http://www.fckeditor.net/

    FCKeditor Wikihttp://wiki.fckeditor.net/

    2、下载FCKeditor

    登录FCKeditor官方站(http://www.fckeditor.net),点击网站右上角“Download”链接。

    笔者编写本文时,FCKeditor当前最新的稳定版本是2.6.6,因此我们下载此版本的zip压缩格式文档。

           FCKeditor 2.6.6版下载地址:

    http://nchc.dl.sourceforge.net/project/fckeditor/FCKeditor/2.6.6/FCKeditor_2.6.6.zip

    3、安装FCKeditor

           解压“FCKeditor_2.6.6.zip”文档到您的网站目录下,我们先假定您存放FCKeditor和调用脚本存于同一个目录下。fckeditor目录包含FCKeditor2.4.3程序文件。check.php用于处理表单数据。add_article.phpadd_article_js.html分别是PHP调用FCKeditorJavaScript调用FCKeditor实例脚本文件。

    3.1、用PHP调用FCKeditor

           调用FCKeditor必须先载入FCKeditor类文件。具体代码如下。

    <?php include("fckeditor/fckeditor_php5.php") ; // 用于载入FCKeditor类文件
      $oFCKeditor = new FCKeditor('content') ;  // 创建FCKeditor实例
    ?>

    接下来,我们需要创建FCKeditor实例、指定FCKeditor存放路径和创建(显示)编辑器等。具体代码如下所示(代码一般放在表单内)。

    <?php

    $oFCKeditor = new FCKeditor('content') ;  // 创建FCKeditor实例

    $oFCKeditor->BasePath = './fckeditor/';        // 设置FCKeditor目录地址

    $FCKeditor->Width='100%';                //设置显示宽度

    $FCKeditor->Height='300px';               //设置显示高度的高度

    $oFCKeditor->Create() ;                    // 创建编辑器

    ?>

    接下来以我的一个php例子来显示文本编辑器的调用.在表单中将<textarea  name="content" id="" cols="30" rows="5"></textarea>    这段代码替换为

    <?php include("fckeditor/fckeditor_php5.php") ; // 用于载入FCKeditor类文件
            $oFCKeditor = new FCKeditor('content') ;  // 创建FCKeditor实例
            $oFCKeditor->BasePath = 'fckeditor/';        // 设置FCKeditor目录地址为当前目录下的fckeditor目录
            $oFCKeditor->Width='95%';                //设置显示宽度
            $oFCKeditor->Height='400px';               //设置显示高度的高度
            $oFCKeditor->Value=$row['content'];
            $oFCKeditor->Create() ;                    // 创建编辑器      
    ?>

    截图显示为如下:

    说明:一个FCKeditor编辑器实例和普通的表单控件一样,也具有name属性和value属性,上例中编辑器的name属性为content,是通过new FCKeditor('content')设置的,value属性值为$row['content'],是通过$oFCKeditor->Value属性来设置的。

    因此,要获取该编辑器里面的内容,可以用$content = $_POST["content"]来获取,要在该编辑器中显示内容,可以通过$oFCKeditor->Value=$row['content']来实现。

    4、配置上传文件浏览功能

    4.1、配置上传 浏览功能

    FCKeditor编辑器内置了文件管理功能,使得用户能够上传图像或文件,他的文件管理程序放在“editor/filemanager/”目录下,FCKeditor提供文件浏览和文件快速上传功能。

    要使您的FCKeditor能够使用上传功能,您必须进行以下配制。
    注意:FCKeditor2.6.6 不支持虚拟目录,您的路径设置都是针对网站根目录的绝对路径而言的。这点对于发布到远程网站目录的开发者极为不便,后面我们会对此进行讨论。
    一、打开fckeditoreditorfilemanagerconnectorsphpconfig.php,找到代码$Config['Enabled'],将值设置为true。
    $Config['Enabled'] = true;  //将false改为true,表示允许上传
    二、接下来几行,设置$Config['UserFilesPath'],设置上传路径。
    $Config['UserFilesPath'] = 'upfiles/';  //定义上传目录
    三、打开fckeditorfckconfig.js文件,找到代码_FileBrowserLanguage ,将值设置为php。接下来一行,把 _QuickUploadLanguage 值也设置为php。
    
    
    var  _FileBrowserLanguage  =  'php';
    var  _QuickUploadLanguage =  'php';
    
    

    至此,Apache服务器已经能正常上传文件。

    4.2、上传文件自动生成随机文件名(配置对上传文件进行重命名)

    如果要上传的文件名中存在中文字符,则会出现乱码问题,导致引用文件的URL不对,解决这个问题的办法是将所有上传的文件名重命名。下面介绍实现方法

    打开fckeditoreditorfilemanagerconnectorsphpIo.php,这个文件里有一个函数名叫

    function SanitizeFileName( $sNewFileName ),这个函数原来的功能是清理掉文件名的非法字符,以阻止一些可能发生的问题。将函数代码修改为:

    function SanitizeFileName( $sNewFileName )
    {
        $arr = explode('.',$sNewFileName);
        $ext = array_pop($arr);         //第一个数组元素保存了. 前的文件名
        $filename = date('Ymd_His_').rand(1000,9999).'.'.$ext;
        return $filename ;
    }
    SanitizeFileName 函数的功能是将上传文件的文件名重命名,新的文件名按照日期时间随机数的格式命名,即可防止修改后的文件重名,又可以防止新的文件名中出现中文字符。

    4.3 、关于上传文件浏览安全性问题

    为了解决FCKeditor不支持虚拟目录问题,和FCKeditor文件上传的安全性考良。我们有必要在这里单论对此进行讨论。

         打开fckeditoreditorfilemanageruploadphpconfig.php,找到$Config['UserFilesPath']代码,在此行代码之前定义变量$root_path = $_SERVER['PHP_SELF'];
         重新设置$Config['UserFilesPath']变量的值,示例如下。
    $Config['UserFilesPath'] = $root_path . '您想上传的目录名/' ;
         
         打开fckeditoreditorfilemanagerrowserdefaultconnectorsphpconfig.php,找到代码$Config['UserFilesPath'],在此行代码之前定义变量$root_path = $_SERVER['PHP_SELF'];
         重新设置$Config['UserFilesPath']变量的值,示例如下。
    $Config['UserFilesPath'] = $root_path . '您想浏览的目录名/'
         至此,您的FCKeditor已解决不支持虚拟目录问题。接下来,我们介绍一种技巧配置只允许管理员才可以使用FCKeditor上传问题。
         解决方法其实很简单,假如网站采用$_SESSION['admin_id']验证管理员的登录id,您只需将相关的脚本文件引入即可。然后使用下面的代码配置文件上传浏览开关。
    $Config['Enabled'] = isset($_SESSION['admin_id']);

    这样,当用户未登陆的时,isset函数将返回false;

  • 相关阅读:
    最大流问题的几种经典解法综述
    有上下界的网络流
    hiho一下
    poj 1018
    状压dp
    hdu 1043
    Poj1015
    7.14
    sgu 128
    (zhuan)
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/4947910.html
Copyright © 2020-2023  润新知