[原創][多圖]在線編輯器FCKeditor在PHP中的使用方法(已修改)
FCKeditor是sourceforge.net上面的一個 開源 項目,主要是實現在線網頁編輯器的功能,官方網站為http://www.fckeditor.net,在服務器端支持ASP.Net、ASP、ClodFusion、 PHP 、 Java 等語言,并且支持IE5+、Mozilla、Netscape等主流瀏覽器。目前最新版本為2.0
FCKeditor是sourceforge.net上面的一個
開源項目,主要是實現在線網頁編輯器的功能,官方網站為http://www.fckeditor.net ,在
服務器端支持ASP.Net、ASP、ClodFusion、
PHP、
Java等語言,并且支持IE 5+、Mozilla 、Netscape等主流瀏覽器。目前最新版本為2.0 Beta 2,但是目前2.0 Beta版還不支持PHP,所以這里我選擇使用了1.6版本。
首先我們先到http://sourceforge.net/projects/fckeditor/
下載FCKeditor_1.6.zip,并將其解壓縮到你的網站子目錄里面,并將文件夾名改為FCKeditor。進入到FCKeditor/目錄下,打開_test/目錄,里面含有各種
編程語言調用FCKeditor的方法,其中與PHP有關的文件有2個文件:
test.
php //提交數據頁面
testsubmit.php //顯示數據頁面
大家可以看一下,了解FCKeditord的調用方法,下面是我簡寫了一個test程序:
<?php
if($_POST["ADD"]){
$Content=$_POST['EditorDefault'];
echo $Content;
//變量$Content就是我們在FCKeditord里面編輯的內容,這里可以將其保存到
數據庫里面
}
?>
<html>
<head>
<?php
//引入在線編輯器
include("../FCKeditor/fckeditor.php") ;
?>
</head>
<body>
<br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" language="
javascript">
<?php
$oFCKeditor = new FCKeditor ;
// FCKeditor所在目錄,[b:91beb51adf]這個路徑一定要和上面那個引入路徑一致,否則會報錯:找不到fckeditor.html頁面[/b:91beb51adf]
$oFCKeditor->BasePath = '../FCKeditor/' ;
// 將FCKeditor實例化
$oFCKeditor->CreateFCKeditor( 'EditorDefault', '100%', 300 ) ;
?>
<INPUT type="submit" name="ADD" value="提交">
</form>
</body>
</html>
從上面的例子中我們可以看到要使用FCKeditor,首先要執行
include("../FCKeditor/fckeditor.php") ;語句來引用FCKeditor。然后執行
$oFCKeditor = new FCKeditor ;
$oFCKeditor->BasePath = '../FCKeditor/' ;
$oFCKeditor->CreateFCKeditor( 'EditorDefault', '100%', 300 ) ;
來實例化FCKeditor,如果是編輯頁面則再加入一行:
//$Content可以是從
數據庫中讀取出來的數據
$oFCKeditor->Value = $Content ;
默認情況下,上傳圖片功能僅對應于ASP方式,要想實現在PHP下上傳文件,還得對FCKeditor的配置文件進行修改。打開/ FCKeditor/js/fck_config.js(這是FCKeditor的主配置文件),定位到文件的最下面那段被//注釋掉的內容,將
//##
//## Image Browsing
//##
config.ImageBrowser = true ;
// Custom Page URL
config.ImageBrowserURL = config.BasePath + "filemanager/browse/sample_html/browse.html" ;
//config.ImageBrowserURL = config.BasePath + "filemanager/browse/sample_php/browse.php" ;
//config.ImageBrowserURL = config.BasePath + "filemanager/browse/sample_jsp/browse.jsp?type=img" ;
//config.ImageBrowserURL = config.BasePath + "filemanager/browse/sample_asp/browse.asp" ;
//##
//## Image Upload
//##
config.ImageUpload = true ;
// Page that effectivelly upload the image.
config.ImageUploadURL = config.BasePath + "filemanager/upload/asp/upload.asp" ;
//config.ImageUploadURL = config.BasePath + "filemanager/upload/aspx/upload.aspx" ;
//config.ImageUploadURL = config.BasePath + "filemanager/upload/cfm/upload.cfm" ;
//config.ImageUploadURL = config.BasePath + "filemanager/upload/php/upload.php" ;
//config.ImageUploadURL = config.BasePath + "filemanager/upload/jsp/upload.jsp" ;
改為
//##
//## Image Browsing
//##
config.ImageBrowser = true ;
// Custom Page URL config.
ImageBrowserURL = "filemanager/browse/sample_html/browse.html" ;
config.ImageBrowserURL = config.BasePath + "filemanager/browse/sample_php/browse.php" ;
//##
//## Image Upload
//##
config.ImageUpload = true ;
// Page that effectivelly upload the image.
config.ImageUploadURL = config.BasePath + "filemanager/upload/php/upload.php" ;
最后再修改2個文件:
/FCKeditor/filemanager/upload/php/upload.php
第22行
$UPLOAD_BASE_URL = '/userimages/';
/FCKeditor/filemanager/browse/sample_php/browse.php
第20行
$IMAGES_BASE_URL = '/FCKeditor/userimages/';
這兩處定義了圖片上傳到哪個目錄,可以自行定義,不過一定要確保該目錄存在,不然上傳圖片時會報錯。
然后我們把FCKeditor目錄下的用不到的.asp、.jsp、. cfm文件和_test、_ aspnet、_developers、_docs、_jsp目錄都刪掉以節省空間。好啦,FCKeditor的基本使用方法就講到這里,大家感興趣的話可以到我的網站來看看效果:http://www.shaof.com 。
補充:
在FCKeditor官方的網站注明FCKeditor目前支持3種瀏覽器:IE5+,Mozilla and Netscape。但在實驗中發現使用IE5.0是不支持圖片上傳功能,只有將IE升級到5.5或者6.0才能支持圖片上傳功能。而對于剛出的Mozilla Firefox 1.0 RC1以及Mozilla1.6(
Linux環境),則完全無法使用FCKeditor。
以下是使用IE5.0和IE6.0時的截圖。

|
FCKeditor截圖

| 使用IE5.0時,看不到“上傳”提示
SATAND 回復于:2004-10-31 17:28:06
| 粗讀了js文件,可擴展性還好但是功能有限
放棄,作為紀念品收藏
| tjyihui 回復于:2004-10-31 18:20:08
| to SATAND
能介紹一下有哪些更好的在線編輯器嗎?
| SATAND 回復于:2004-10-31 21:02:19
| 其實要看完成什么功能了
我覺得如果是編輯一個帖子,FCKeditor足夠了
但是如果真的是在線編輯網頁,還沒有見過能夠勝任這項工作的
我的想法是基于xml做類似于瘦身frontpage的東西作為client,必須足夠精簡到作為控件下載,一切編輯工作仍在本機運行,但是可以很方便的post到www的接受組件
其實,我覺得FCKeditor選擇了js是方向上的錯誤,他們選擇了錯誤的語言,功能也就止于此了
| tjyihui 回復于:2004-10-31 23:07:44
| FCKeditor的確不能和FrontPage或是DW相比,但是我們真的需要FCKeditor實現更強大的功能以實現替代FP或DW的水平嗎?我想使用FCKeditor無非是為了更方便的實現類似“新聞發表系統”或是網站后臺管理的功能。而且使用js,可以實現在client上跨平臺操作。
| SATAND 回復于:2004-10-31 23:26:41
| 無論新聞發表系統還是站點后臺都應該用更精致的模板
所以FCKeditor不可取
但是模板的編輯確實需要自定制的瘦編輯器配合,用以提供可見即所得的模板制作方式 - 其間的關鍵不是瘦編輯器,而是現在的編輯器沒有將代碼和相應的文件向腳本地址post的功能
如果是跨平臺,phpgtk,java都能夠很好的實現,想對而言js可以說是功能最弱的了
FCKeditor固然有優秀之處,但是用以編輯網頁并post,它勝任不了,用于論壇是最合適的
| tjyihui 回復于:2004-11-01 08:54:27
| to SATAND
也許是我沒有見過老兄所說的專業新聞發表系統,所以對你所說的
“模板的編輯確實需要自定制的瘦編輯器配合,用以提供可見即所得的模板制作方式 - 其間的關鍵不是瘦編輯器,而是現在的編輯器沒有將代碼和相應的文件向腳本地址post的功能”不能夠透徹的理解,如果方便的話,SATAND能否提供一個例子來供小弟參考一下呢。
| tjyihui 回復于:2004-11-01 08:58:35
| 我覺得在線編輯器應該是值得大家關注的一個話題,值得大家深入探討。
| SATAND 回復于:2004-11-01 10:05:11
| 作為一個在線編輯器,有2部分功能,第一為網頁編輯,第二為數據post
將所有的數據連同引用文件post的功能FCKeditor幾乎實現了,但是網頁編輯功能有一定的局限 - 并不是說用它做不出精致的模板來,因為即便往里敲html代碼也可以完成模板編輯工作,關鍵是它在這項工作中做出了多少貢獻
你可以嘗試用它做一個很簡單、簡潔的新聞模板,比如我現在用的
http://newsy.org/news/news/SATAND/newsy/2004-10-30/1099141665.html
看需要多長時間,能不能做到沒有缺陷
而且,我覺得這個模板的代碼已經夠簡潔了
詳細模板代碼可以在登陸系統后的幫助文檔查閱
附,這個是我用自己的gtk編輯器改的,可惜因為安全問題和需要本地裝載,gtk編輯器不能被啟用
| csona 回復于:2004-11-01 12:57:59
| 我感覺經過我修改FCK我們用啦,我也可以用fck實現SATAND所說的功能
| abin30 回復于:2004-11-01 14:51:22
| 我個人覺得 HTMLEDITOR 要比 FCK 好一點,可以看看.
| tjyihui 回復于:2004-11-02 16:39:24
| 補充:
在FCKeditor官方的網站注明FCKeditor目前支持3種瀏覽器:IE5+,Mozilla and Netscape。但在實驗中發現使用IE5.0是不支持圖片上傳功能,只有將IE升級到5.5或者6.0才能支持圖片上傳功能。而對于剛出的Mozilla Firefox 1.0 RC1,則完全無法使用FCKeditor以及Mozilla1.6(Linux環境)。IE6.0時的截圖。

| 使用IE6.0時,就可以看到“上傳”提示

| 選中“上傳”選項框,就會在下方出現“發送到服務器”和“瀏覽”按鈕,用來實現圖片上傳的功能。
| 水若寒 回復于:2004-11-02 22:59:53
| 我上傳的圖片無法顯示,源碼:
<IMG height=212 alt=\"\" src=\"/FCKeditor/userimages/1.jpg\" width=283 border=0>
查看圖片屬性:URL為:
http://127.0.0.1/"/FCKeditor/userimages/1.jpg/"
其中多了一對"http://",導致出錯,我應該改哪個文件?!
| tjyihui 回復于:2004-11-03 08:39:59
| to 水若寒
應該是你的FCKeditor中有關圖片上傳的路徑沒有設置好
------------------------------------------------------------------
最后再修改2個文件:
/FCKeditor/filemanager/upload/php/upload.php
第22行
$UPLOAD_BASE_URL = '/userimages/';
/FCKeditor/filemanager/browse/sample_php/browse.php
第20行
$IMAGES_BASE_URL = '/FCKeditor/userimages/';
這兩處定義了圖片上傳到哪個目錄,可以自行定義,不過一定要確保該目錄存在,不然上傳圖片時會報錯。
------------------------------------------------------------------
如果這兩個文件的路徑沒有設置正確,圖片肯定無法正確顯示出來。
| seaman4444 回復于:2004-11-03 09:26:45
| 頂一下再說,感謝樓主,我很清楚地知道,我要仔細研究這個,因為我一定要用在線編輯器.有問題我再來請教.
| longnetpro 回復于:2004-11-03 12:05:47
| 但事實是,從專業角度來說,用所謂在線編輯器是最不專業的做法,一般只適合于玩玩,絕對不適于做稍大一點的項目。所以資深及專業人員一般不用這種在線編輯器,而多數用專用的本地發布系統。另外,用JS的做法本身就值得商榷。我認為,在可能的情況下,盡量不要用JS,以免引起不必要的麻煩。在客戶端用JS大量生成HTML,更是為人所忌諱的??v然節省了服務器資源,但造成了更多的麻煩??傊覀€人認為,這些東西以花架子居多,事實上專業人士很少用或是根本不用。如果你確實需要,我建議不如用FLASH來做。
| tjyihui 回復于:2004-11-03 12:24:40
| [quote:93e1587e75="longnetpro"]但事實是,從專業角度來說,用所謂在線編輯器是最不專業的做法,一般只適合于玩玩,絕對不適于做稍大一點的項目。所以資深及專業人員一般不用這種在線編輯器,而多數用專用的本地發布系統。另外,用JS的做法本身就值..........[/quote:93e1587e75]
to longnetpro
你說的“專用的本地發布系統”是不是就是建立在C/S結構上呢?通過幾天對FCKeditor使用,發現基于JS的設計確實有其局限性,在幾種瀏覽器中,只有高版本的IE才能完全支持。老兄說到的利用Flash來實現的確是個好想法??梢詳[脫對瀏覽器的依賴。以前學過Flash,但是當時(Flash5)僅僅支持HTML 1.0,不知道現在有沒有進步。
| seaman4444 回復于:2004-11-04 11:37:29
| 我在插入圖片的時候碰到問題.提示
/filemanager/upload/php/upload.php第50行有錯..
但我不知道錯在哪里.我修改了上傳文件目錄.我在各子目錄下都建立了這個目錄.因為我不知道該建在哪..
請用過這個編輯器的高手指點一下.謝謝
| tjyihui 回復于:2004-11-04 12:45:24
| [quote:cb9a2d3997="seaman4444"]我在插入圖片的時候碰到問題.提示
/filemanager/upload/php/upload.php第50行有錯..
但我不知道錯在哪里.我修改了上傳文件目錄.我在各子目錄下都建立了這個目錄.因為我不知道該建在哪..
請用過這個編輯器的高手指..........[/quote:cb9a2d3997]
我覺得應該還是路徑問題,見下面這段話進行相應修改
最后再修改2個文件:
/FCKeditor/filemanager/upload/php/upload.php
第22行
$UPLOAD_BASE_URL = '/userimages/';
/FCKeditor/filemanager/browse/sample_php/browse.php
第20行
$IMAGES_BASE_URL = '/FCKeditor/userimages/';
這兩處定義了圖片上傳到哪個目錄,可以自行定義,不過一定要確保該目錄存在,不然上傳圖片時會報錯。
| 水若寒 回復于:2004-11-04 14:00:25
| 完全按照上面的修改了,上傳圖片沒問題,但就是發表的時候顯示不出來..
| seaman4444 回復于:2004-11-04 14:30:20
| 我上傳圖片的時候報錯:(我建的存放圖片的目錄叫uploadimg,放在FCKeditor根目錄下)
Upload in progress...
Warning: move_uploaded_file(/uploadimg/1.jpg): failed to open stream: No such file or directory in E:\clearcase/" target="_blank" >ccnu_1\test\FCKeditor\filemanager\upload\php\upload.php on line 50
Warning: move_uploaded_file(): Unable to move 'C:\WINDOWS\TEMP\php1E.tmp' to '/uploadimg/1.jpg' in E:\ccnu_1\test\FCKeditor\filemanager\upload\php\upload.php on line 50
另,我想問一下,在插入圖片那一個對話框里,上面有瀏覽服務器,我點擊可是彈出的對話框的右邊不顯示圖片,這個瀏覽服務器怎么去掉.我不想讓發布者能夠瀏覽服務器..
另.文字編輯的背景色在發布后看不到效果.
謝謝.
| tjyihui 回復于:2004-11-04 20:25:35
| [quote:1293a72669="水若寒"]完全按照上面的修改了,上傳圖片沒問題,但就是發表的時候顯示不出來..[/quote:1293a72669]
你有沒有把編輯器中的文件保存進數據庫呢。請把你遇到的問題再仔細描述一下,以便分析出問題原因。
| tjyihui 回復于:2004-11-04 20:35:40
| [quote:c515eb2137="seaman4444"]我上傳圖片的時候報錯:(我建的存放圖片的目錄叫uploadimg,放在FCKeditor根目錄下)
Upload in progress...
Warning: move_uploaded_file(/uploadimg/1.jpg): failed to open stream: No such file or directory ..........[/quote:c515eb2137]
1、我原來在調試的時候也出現了這個錯誤信息,原因還是路徑問題,建議你再仔細檢查路徑設置是否正確。(前提是一定要深入理解相對路徑和絕對路徑?。? 2、點擊“瀏覽服務器”,就會打開你所建立的上傳圖片的那個目錄,如本例中的uploadimg/,如果你以前沒有上傳過任何圖片文件,那肯定不會顯示出圖片的。另外,如果你不想發布者瀏覽服務器,那么只能禁止圖片上傳功能(取消加載圖片上傳的那個按鈕)。
| seaman4444 回復于:2004-11-05 08:07:00
| 那我再去仔細看一路徑是不是對的.
我不是想限制圖片上傳功能,因為到時候這個在線編輯中要注冊用戶也可以上傳文章的,但是不能讓注冊用戶修改服務器上的內容.
所以我想問一下,這個瀏覽服務器,看到圖片目錄uploadimg里的圖片,用戶可以在這里修改嗎?像刪除操作.
如果用戶只能看不能修改.那么能看到也無所謂.
| seaman4444 回復于:2004-11-05 10:04:41
| 路徑改對了...
可以上傳了.但是不能預覽看不到圖片.
舉例說明.網站總目錄為ccnu.
引用編輯器的網頁名為news.php
news.php和FCKeditor文件夾在同一目錄下.
uploadimg是FCKeditor目錄下的一個文件夾,用來存放圖片.
上傳圖片時,瀏覽服務器是正常的.圖片能正常顯示.路徑為FCKeditor/uploadimg/aa.jpg
可是上傳發布之后,圖片路徑變為了127.0.0.1/uploadimg/aa.jpg了..
這會是什么問題??請指教.謝謝
| lip199162 回復于:2004-11-15 15:51:53
| 請問誰知道,哪里還有些比較簡單的在線編輯器?
| 水若寒 回復于:2004-11-16 10:04:52
| 2.x版本似乎強很多,不知何時支持PHP?!
| tjyihui 回復于:2004-11-17 13:47:45
| 對FCKeditor感興趣的朋友可以訪問我的網站繼續討論這個話題。我已經再次對文章進行了修改。網址如下:[url]http://www.shaof.com[/url]
| FUS 回復于:2004-11-23 17:33:56
| 能不能直接保存為一個html文件在服務上!而不用存在數據中呢。
|
|
|
原文轉自:http://www.anti-gravitydesign.com
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97
|
|
| |
|
|
|