首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

FCKeditor 2.x PHP 環境客製化配置指南

     編輯:PHP 相關知識

前言

FCKeditor(現 CKEditor 前身)是早期廣泛使用的線上富文本編輯器。本文記錄針對 PHP 環境的客製化調整步驟,包含精簡檔案、語言包優化、上傳功能啟用、檔名亂碼修正與介面漢化,供維護舊專案參考。

1. 精簡安裝包:移除非必要檔案

  • 刪除 editor/_source/:原始碼目錄,生產環境不需保留。
  • 語言包精簡:僅保留 editor/lang/en.js、zh.js、zh-cn.js,其餘刪除以減小體積。
  • 連接器精簡:editor/filemanager/connectors/ 下僅保留 php/ 目錄,刪除 asp、aspx、cfm、jsp、lasso、perl、py 等其他語言連接器。

2. 核心配置修改 (fckconfig.js)

預設語言設為繁體中文

FCKConfig.DefaultLanguage = 'zh-cn';  // 或 'zh' 視語言檔名稱而定

擴充字型清單(加入中文字型)

FCKConfig.FontNames = '新細明體;標楷體;微軟正黑體;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana';

註:字型名稱需用分號分隔,瀏覽器端需有對應字型才會顯示效果。

字號改為像素單位(更直觀)

FCKConfig.FontSizes = '9px;10px;11px;12px;13px;14px;16px;18px;24px;36px';

原預設為 xx-small, x-small, small, medium, large, x-large, xx-large 等關鍵字,改為像素值方便使用者精確控制。

3. 啟用檔案上傳功能

編輯 editor/filemanager/connectors/php/config.php:

$Config['Enabled'] = true;  // 預設為 false,必須改為 true

同檔案中建議同步設定:

$Config['UserFilesPath'] = '/userfiles/';      // 網站可訪問的上傳路徑
$Config['UserFilesAbsolutePath'] = '/var/www/html/userfiles/'; // 伺服器實體絕對路徑
$Config['ForceSingleExtension'] = true;        // 安全:強制單一副檔名

4. 解決中文檔名上傳亂碼/覆蓋問題

修改 editor/filemanager/connectors/php/io.php 中的 SanitizeFileName 函式,將上傳檔名重命名為「時間戳+隨機字串」格式:

function SanitizeFileName($sNewFileName) {
    global $Config;
    $sNewFileName = stripslashes($sNewFileName);

    // 安全性:替換多餘的點號
    if ($Config['ForceSingleExtension']) {
        $sNewFileName = preg_replace('/\.(?![^.]*$)/', '_', $sNewFileName);
    }
    // 移除危險字元
    $sNewFileName = preg_replace('/[\\\\|\/|:|\?|\*|"|<|>]/', '_', $sNewFileName);

    // === 新增:重命名邏輯 ===
    $ext = pathinfo($sNewFileName, PATHINFO_EXTENSION);
    $sNewFileName = generateUniqueFileName() . '.' . $ext;
    return $sNewFileName;
}

function generateUniqueFileName() {
    $time = explode(' ', microtime());
    $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
    $rand = '';
    for ($i = 0; $i < 6; $i++) {
        $rand .= $chars[mt_rand(0, strlen($chars) - 1)];
    }
    return date('ymdHis') . substr($time[0], 2, 6) . $rand;
}

此修改可避免中文檔名編碼問題、防止同名檔案覆蓋、提升安全性。

5. 介面提示訊息漢化(選擇性)

若需將上傳對話框的英文提示改為中文,需修改以下 JavaScript 檔案中的字串:

  • editor/filemanager/connectors/php/commands.php
  • editor/filemanager/connectors/php/connector.php
  • editor/filemanager/connectors/php/upload.php
  • editor/dialog/fck_flash/fck_flash.js
  • editor/dialog/fck_image/fck_image.js
  • editor/dialog/fck_link/fck_link.js

建議使用編輯器全域搜尋關鍵字(如 alert(, confirm()逐一替換。

6. 整合建議與注意事項

項目建議
快取修改 JS 檔後需清除瀏覽器快取或加版本號 ?v=20240101
權限上傳目錄需給 PHP 寫入權限(Linux: chown www-data:www-data)
安全配合 .htaccess 禁止上傳目錄執行 PHP:php_flag engine off
升級新專案建議直接採用 CKEditor 4/5,FCKeditor 已停止維護

結語

完成上述配置後,FCKeditor 在 PHP 環境下將具備:中文介面、支援中文字型/像素字號、安全的檔案上傳與自動重命名功能。雖屬舊技術,但對維護現有系統仍具參考價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved