相關推薦:《discuz教學》
#discuz!(簡稱dz)和phpwind(簡稱pw)是國內最著名的兩個PHP論壇系統,隨著它們相繼宣布開源以後,在各方面,不管技術上,還是功能上,還是界面上,都有了長足的發展,聲威大振,遠非國外那些功能簡單的電子公告板系統可比了。其造成的一個副作用是大大帶動了PHP在國內的普及(本人就是在尋找合適的論壇程序的時候,才開始關注PHP,進而不能自拔的 )。
客觀的說,目前的pw和dz各有短長,其互相之間的激烈競爭應該說提高了PHP論壇的水平,在功能上不僅趕上了以功能多和漏洞多而著稱的動網論壇,而且因為它們的效率和速度遠遠超過動網,弄的動網市場大大萎縮,原來的一些動網論壇都紛紛轉換成了dz或者pw,搞的動網都不得不開始弄PHP論壇了。
要說他們哪個比較好,是比較難的事情,畢竟各有短長,俺也不敢在這裡妄下結論。不過從市場份額和網路上的言論來看,目前dz還是略佔上風的,而且去年國內好幾個知名的大論壇都轉換成了dz(比如鳳凰網、牧文、tompda等),而pw在大網站方面收穫甚小。
但是畢竟對好多新手來說,他們都要面臨一個選擇論壇程序的問題,因此,dz和pw哪個更好,也就成了經常被問到的問題,這種沒有答案的問題,自然要被反覆問起。本文試圖從比較深的層次來分析兩個論壇的優劣,為新手提供選擇的參考。如有錯謬之處,歡迎批評指正。
一、界面篇
首先,從介面上說,從整體來說,dz的介面比較美觀,整體感好。
pw的介面給人一種模仿dz的感覺。同時在介面的細節上,看起來pw還是沒有dz完美。
二、技術篇
從技術上來說,pw和dz都使用了檔案方式的資料快取技術,透過把常用的資料表,例如論壇版面設定參數、基本參數等,產生靜態快取檔案(根據條件觸發更新或手動更新),來減少資料庫讀取次數,提高效率,在這個方面兩者非常相似。
1、模版技術
從模版技術上說,dz從2.5f版就開始採用的這種靜態模版技術,從俺個人角度上說,還是非常適合論壇這種頻繁更新的網站程式使用的。它透過動態產生靜態模版的方式,解決了模版解析效率的問題。
同時,dz的這種模版方式,使得修改介面也比較容易,很直覺。
而pw使用echo語句的這種方式(姑且稱為模版),就寒磣多了,要增加了一個if判斷條件,就要折騰半天。新增了混合PHP程式碼的模板,在 dreamweaver中也容易被誤操作刪除。特別是如果修改的時候稍有不慎,很可能會讓網頁成了白板(沒有輸出),讓俺每次修改pw模版無不如履薄冰,戰戰兢兢。 。 。 。恐怕這也是第三者模版中,dz遠遠多於pw的原因吧。
不過pw目前在模版上也在改進,現在看verycms 3.0就已經開始使用真正的模版技術,不過目前用的都還比較初級。 。 。
2、速度問題
從模版上看,兩者的效率應該是差不多的,pw的模版其實就是直接包含的混合了PHP語句的一部分PHP文件,而dz的模版平時並不需要解析,所以效率應該是差不多的,但是網上總是有人聲稱網站使用dz的速度比pw慢,這方面本人沒有測試過,不敢妄作評論。而且網站存取速度還是要受許多因素的影響,例如:本地網路速度、伺服器頻寬、心理。 。 。 。 。客觀的評價還是很難的,除非使用專業技術手段。不過從官方網站的速度來看,明顯還是pw佔優啊,呵呵
最近看了一下dz的CSS文件,明顯是用CSS用的有點過度了,在dz中大量使用了CSS, CSS檔案高達16KB左右(pw只有2KB左右),可能造成了IE渲染網頁的時候,效率比較低。同時,由於dz的CSS檔案過於龐大,只好採用了外置的方式(Link)。
這樣如果網速很慢,網頁已經或部分下載完,而CSS檔案下載沒完成(網速慢的時候,常常會發生這種情況),那麼網頁根本就無法正常顯示。
在網速慢的時候,光dz的CSS文件,就要用好幾秒,甚至十幾秒的時間才能下載,而整個網頁只能在CSS下載完成以後才能進行正確的顯示,這就無怪乎在網速慢的時候,dz表現大大遜色於pw了。
相反,pw在設計CSS的時候,明顯是比較簡潔,這對網頁的渲染肯定是比較有利。同時,pw採用了把CSS檔案嵌入的方式,儘管每次造訪網頁都造成了幾K 個位元組的流量,但是實際影響並不大,反而覺得網頁開啟速度比dz要快(這就是pw用了一個笨法子,卻常常效果比dz強的典型案例)。
這方面,建議dz痛下決心簡化過度臃腫的CSS文件,提高網頁速度。
三、功能篇
下面俺就dz5.5和pw5.3的功能,做一個簡單的,本人看來是比較深入,可能高手看來仍嫌淺顯的分析,請大家指正:
1、登入方式:
pw的前台登入和後台登入採用了不同的Cookie方式,這樣前後台分開的方式,個人感覺,有利於安全,也方便管理。後台帳號與前台帳號可以完全分開。
而dz的前後台登入是用了一個帳號,儘管在進入後台的時候再次提示輸入密碼,不過還是不如pw方便。
比較特別的是,dz在註冊的時候,要求輸入提示問題(選填),而且在登入介面中,也有提示輸入的介面,個人感覺,絕對的畫蛇添足,無聊。如果說使用提示問題來找回密碼,還是有點道理的。用提示問題的方式,讓新手看了無所適從,腦袋都暈了
2、分欄顯示:
pw從5.0.1開始支持左右分欄顯示了,然而功能太簡單,不能樹狀顯示子板塊,此功能與其說有,不如說沒有,弄的有點搞笑,屬於半成品(倒是也符合pw的一貫特點--喜歡推出一些不完美的東西讓大家修改)。
看了dz5.5的分欄顯示,做的還是比較完美的,感覺相當不錯了。
3、後台管理的效率:
pw的橫向操作非常不錯,大大節省了管理的難度,特別是在根據使用者群組設定權限的時候,非常的那個方便啊,這方面dz需要改進。
dz提供了一個方案的方式來解決後台重複操作問題,應該說也有一定道理,但是用起來不太容易上手,如果是設置一個單獨的項目,就比較繁瑣。
4、個人空間(文集)功能:
dz5.5內建了minispace個人空間功能,可以說自從discuz合併了supsite以後,在論壇功能的外展方面,佔據了很大優勢,吸引了很多個人網站的注意。
這個minispace用dz官方的話說,是這樣的:
「完全利用論壇原有資源,會員不必更多付出,即可擁有個性展示頁面與 X-Space 完美結合,可順暢實現 MiniSpace 與 X-Space 自然過渡 」
大體看了一下,發現這個minispace做的很不錯,利用它,用戶可以把自己的優秀帖子整理出來,形成一個文集的方式,方便別人訪問。以前在別的論壇看過這個功能,覺得很不錯,沒想到dz把它整合進去了。這個功能已經可以滿足大部分論壇的功能要求了,如果要求更高,例如希望能讓用戶發布b0客文章,按照官方的說法,也可以遷移到X——space中去。但更重要的是,minispace是開源的,而X-space的原始碼並不開放。
說到X-space,我們覺得,pw在功能上雖然足以和dz匹敵,但是在論壇的外延上,卻比dz落後了很多。 X-space能實現以論壇為中心的個人空間功能,而pwblog(已改名為Lxblog,正式版未推出,本文僅以5.1.5版本為例)卻和論壇貌合神離,貼文推送功能雖然從4.3.2就有了,然而卻一直不好用,4.x推送以後,圖片和附件都不正常,5.1.5雖然可以推送正常了,然而在論壇中更新的帖子,在b0客中卻不再出現回帖,可以說推播功能在pwblog中只是一個無用的點綴而已。
說到底,我們常常希望的只是一個論壇帖子文集功能的方式,pwblog把論壇中的內容重複推送到b0客中,既浪費空間,又沒有意義,這方面dz遠遠勝過了 pw,值得表揚。但minispace的功能還是略顯簡單了些,例如沒有文集貼文的分類功能、沒有首頁推薦貼文等等(也許論壇貼文的分類意義不大,不過有總比沒有強吧?)
5.防灌水技術
pw5.3終於接受了俺提出的新手註冊第N貼以前發文使用驗證碼的方式,這樣既不影響老用戶的使用,又通過驗證碼方式來限制惡意灌水機器人。 dz未提供此功能,但具有可以設定第N貼以後不用自訂問答的功能(dz的驗證碼很爛,根本看不清,用自訂問答似乎更好一些)。
在防止自動註冊方面,pw和dz都使用了自訂問答方式防止自動註冊的辦法,具體原理很簡單,兩者實現的都差不多。差別在於,dz要求設定10個以上的問題才能生效,而pw只能設定一個問題。另外,還有一個差別,就是pw可以自訂問答中內部使用的form變數名,可能在防止惡意自動註冊方面,會更有效一些。 pw的自訂問題只能用於註冊,而dz的可以用在註冊、發佈和簡訊等方面。
從目前的具體應用來看,用一個問題就基本上解決了自動註冊的問題(長時間實踐發現的結果),當然也不排除特大型網站,用一個問題容易被攻破的可能性,這方面dz可能更有效一些。只是dz限制要求10個以上才能生效的做法,令人費解。
6、前台管理功能
pw具備副版主功能,不過和一般的思路不同,副版主是由版主任命的,這樣恐怕會導致權限混亂問題,所以也很少人用這個功能。
在前台的管理功能中,pw更方便一些,不僅的主題列表中能進行管理,在帖子內容頁面中的管理方式比dz用下拉方式更直觀一些。而且在一個主題裡面刪除帖子,pw比dz直覺多了。
費解的是,pw5.3版本中移動帖子,都會在帖子前面加入移動提示“本帖被 xxxx 從 xxxx 移動到本區(xxxx年xx月xx日) ”,無法消除,真是難看極了(以前版本沒有這個毛病)
dz實現了「沉貼」的功能,可以把那些偶爾被人翻上來的無用垃圾貼沉下去,確實方便多了。 。 。 。有次俺在pw中為了沉一個帖子,不得不提前了N個帖子。而且dz的版主管理功能,加亮、精華等操作都能一氣呵成,比pw方便多。
7、所見即所得編輯器
dz5.5和pw5.3開始,不約而同的把所見即所得編輯器換成了ubbcode(兩個論壇名稱不一樣,這裡用個通俗一點的名稱,暫稱為UBBCode)方式的編輯器,而放棄了原來的HTML視覺化編輯器。
說起來,這個ubbcode視覺化編輯器確實解決了以前採用程式碼方式,無法視覺化,導致好多非IT人士發文無法控制格式;而和動網一樣使用HTML方式,又產生大量冗餘程式碼和安全性隱患的問題。
不過造成的後果卻是,在轉貼的時候,以前可以直接從別人的網頁上,連圖片帶文字一起轉過來,卻是非常方便,雖然有盜鏈之嫌。換成了這種編輯器,再也沒法那麼方便了,因此在換了編輯器以後,官方論壇中是怨聲載道一片。 。 。 。而且新的編輯器還有好多小BUG,更加是引起了廣泛不滿(另註:用了一段DZ後發現,dz 5.3的所見即所得編輯器好像存在很多問題,幾乎無法用,這方面可能還不如pw的編輯器好用一些)
8、附件上傳和所見即所得功能:
pw的附件還是只能提交帖子上傳以後才能進行圖文混排,這方面dz要好的多,可以上傳前就進行混排,方便多了
dz對不參與上傳的圖片附件還是顯示太多信息,看起來影響美觀(似乎是受vbb和phpbb的影響比較大)。而pw只是顯示了「圖片」字樣和描述訊息,但更噁心的是,卻把這些圖片放到正文文字上方 ,真是屢教不改啊
9、附件防盜鏈技術的分析:
dz採用了隱藏圖片位址,和偵測存取來源(可選)的辦法來防盜鏈,應該說伺服器負擔比較大,效果還行,但不能徹底解決問題。
pw用的方法更簡單,但更有效一些:就是定期或自動修改附件目錄名,應該說這是一個投資少見效快的好辦法,技術上也很簡單。不過最新的pw5.3版本也引入了隱藏附件地址的方式,後台也似乎無法關閉此項功能,似乎有點畫蛇添足的味道了。 。 。 。
發現dz也可以在後台手動修改附件目錄,也可以達到一定效果,但沒有自動修改的功能。
10、廣告功能:
dz比pw好一些,廣告功能更完善一些。例如貼內廣告,在貼文下方的位置類似動網的位置,看起來更整齊一些,而pw的位置就讓貼文佈局顯得比較凌亂,不好看。 dz的貼間廣告可以插入大型的Google Banner廣告,或是它圖片形式的廣告,展示效果很好。
比起dz,pw廣告的插入位置更少一些,效果也差一些。
11、頭像顯示:
dz無法限制上傳頭像的長寬尺寸,只能限制總像素數,看起來不夠靈活,不如pw方便。而且超出了一定尺寸的頭像,被自動縮放和拉伸了,看起來很難看。而且 dz還自動為頭像加了一個邊框,甚是噁心。可見dz把簡單的事情弄複雜化了,其實只要和pw一樣,限制其尺寸,根本不需要拉伸。
12、配件尺寸限制:
pw只能設定所有配件的尺寸,而dz可以對個別格式的配件設定上傳尺寸,比較靈活一些,特別適合一些flash網站,或者技術型網站(例如上傳大尺寸圖紙等)。
13、字詞過濾:
pw只能用普通方式過濾,不支援大小寫(很簡單的事情,官方就是不辦,舉手之勞啊)。
而dz不僅能辨識大小寫,而且有了一定的模糊辨識功能,相當不錯了。當然,要是能直接支援正規表示式就更爽了。
14、自訂程式碼功能:
pw至今不支援自訂wincode程式碼,比較僵化。要增加功能,就只能修改js文件,太過麻煩。 。 。 。
dz在這方面做的比較完美,要增加或減少程式碼、修改播放介面尺寸都很容易,在後台設定一下就可以了
15、回收站功能:
dz可以設定自動清理,而pw不能
16、IP來源顯示功能:
dz的IP位址和來源顯示類似動網,看起來不太方便,需要點選小電腦圖示才行。還是pw的IP位址來源顯示看起來比較舒服一些。
17、防CC攻擊:
pw早在4.3.2就增加了抗CC攻擊功能,而且設定起來比較簡單,新手也能看懂。當初俺就是因為這個原因才用了pw。
dz5.5雖然號稱帶有cc攻擊防護,不過看起來比較難於理解,在後台找了半天也沒找到,估計新手是操作不了的。當年某著名站長論壇(用dz)可就是被CC攻擊搞的長期開不了張的,看起來dz的防CC攻擊功能還有待改進。
18、備份功能
pw能支援對pw程式以外的資料表進行備份,而且判斷標準不是根據表前綴。可以單獨備份pw表以外的資料表,對於那些建立了新表的插件,備份資料超級容易,這方面比較人性化。
dz只是根據表前綴來進行備份,例如你設定一個表,叫做cdb_test,那麼它會把它認為是論壇資料表而進行備份。但是如果你設定一個表,叫做test,那就自己想辦法去吧。 。 。 。
但是dz比pw強的是,備份可以壓縮,壓縮後下載和轉存備份檔案應該會節省巨大的空間和時間,對於超大型論壇應該是非常管用的。 dz備份可以指定檔名,而且備份資料用十六進位表示(安全一些,但是佔用空間會大一些),估計導入和還原的中文內碼問題就不會存在了。
另外,dz還可以備份MySQL Dump備份(不建議使用)。
19、檔案與資料庫校驗:
dz內建了檔案和資料庫校驗的功能,pw只是官方提供了一個檔案校驗工具,不過用起來有點莫明其妙,有時候提示使用的函數在php檔案中根本不存在
20、主題推薦和相關貼功能:
dz透過qihoo實現了相關貼的功能,而且還可以支援主題推薦,這方面比pw強了許多。
21、模版和風格設定
phpwind可以在後台設定風格CSS文件,雖然新手不太容易上手,但確實還是比較方便的。
dz更進一步,把css的內容給解釋成了表單的形式,讓新手也能操作,不過帶來的缺點更加大了:如果你想在CSS中增加控制(比如調整行間距等),就不知道該怎麼弄了,只好去修改模版。還好dz也提供了一個附加功能:在後台可以直接修改模版,而且編輯介面中還帶搜尋功能,總算是亡羊補牢了
dz以較大優勢在功能上超過pw,而且在dz有些勝過pw的功能上,好多都是以較大優勢取勝。
四、總結
整體來說,dz在功能上,介面上,技術上,論壇功能外延上,都勝過了pw。但pw也並非一無是處,其抗CC攻擊功能,簡潔快速的介面,強大的管理功能,獨到的防盜鏈技術,都很有特色。所謂仁者見仁,智者見智,選擇pw還是dz,仍然是一個個性化的問題,取決於你對他們的某項特點是否看重。
另外,感覺dz在瀏覽器相容性上有點小問題,有時候會出現提示,什麼從來路不明的什麼東西提交信息,檢查norton internet security配置之類的煩人問題,而且dz的驗證碼太噁心,根本看不明白,都趕上動網的爛驗證碼了,基本上沒辦法用,只好關掉算完。
要說明的是,如果是新手,需要選擇論壇,還是建議選擇dz,因為功能比較多,論壇的外延開發的比較好(supsite/X-space做的很不錯),用起來方便一些,而且模版修改起來比較簡單,容易上手。
pw只是適合老手,和對論壇外延功能不太感興趣的那些人使用,而且pw的模版修改起來相當困難,稍有不慎就容易出錯,對新手不合適。
PW適合娛樂站,速度快,功能多,官方整合各種插件,幾乎不用維護
pw現有的功能=dz 銀行 多附件上傳 線上會員統計 特殊使用者群組新增 節日送禮
更多程式相關知識,請造訪:程式設計教學! !
以上是phpwind和discuz的簡單對比的詳細內容。更多資訊請關注PHP中文網其他相關文章!