之所以说再论,是因为网上都已经有了好多这方面的文章。以前偶也曾经大体浏览过几片,觉得论述不深,多属泛泛而言,仅仅涉及皮毛,如隔靴搔痒,看了不如不看,越看怕是越糊涂 <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

discuz!
(简称 dz )和 phpwind (简称 pw )是国内最著名的两个 PHP 论坛系统,随着它们相继宣布开源以后,在各方面,不管技术上,还是功能上,还是界面上,都有了长足的发展,声威大振,远非国外那些功能简单的电子公告板系统可比了。其造成的一个副作用是大大带动了 PHP 在国内的普及(本人就是在寻找合适的论坛程序的时候,才开始关注 PHP ,进而不能自拔的 )。

客观的说,目前的 pw dz 各有短长,其互相之间的激烈竞争应该说提高了 PHP 论坛的水平,在功能上不仅赶上了以功能多和漏洞多而著称的动网论坛,而且因为它们的效率和速度远远超过动网,弄的动网市场大大萎缩,原来的一些动网论坛都纷纷转换成了 dz 或者 pw ,搞的动网都不得不开始弄 PHP 论坛了。

要说他们哪个更好,是比较难的事情,毕竟各有短长,俺也不敢在这里妄下结论。不过从市场份额和网上的言论来看,目前 dz 还是略占上风的,而且去年国内好几个知名的大论坛都转换成了 dz (比如凤凰网、牧文、 tompda 等),而 pw 在大网站方面收获甚小。

但是毕竟对好多新手来说,他们都要面临一个选择论坛程序的问题,因此, dz pw 哪个更好,也就成了经常被问的问题,这种没有答案的问题,自然要被反复问起。本文试图从比较深的层次来分析两个论坛的优劣,为新手提供选择的参考。如有错谬之处,欢迎批评指正。

一、界面篇

首先,从界面上说, dz 2.5f 版本开始,界面就比较清爽,字体都比较合适。 5.0 版本的界面给人耳目一新的感觉,但又觉得不太清爽了。 6.0 的推出感觉耳目一新,恢复了 dz 一贯美观大方,明亮的特点,看起来也比较简洁。从整体上说, dz 的界面比较美观,整体感好。

pw 的界面一直给人感觉非常粗糙,丑陋,字体更是及其丑陋。从 5.0.1 开始, pw 有一种痛改前非的感觉,特别是 5.3 的推出,彻底改变了以往 pw 界面及其丑陋的缺点,界面和字体都变漂亮了,但又给人一种模仿 dz 的感觉。同时在界面的细节上,看起来 pw 还是没有 dz 完美(当然偶觉得 dz 的界面部分小细节也不符合俺的要求)。 pw6 的推出,改变了以往 pw 忽视界面设计的缺点,带了好几套界面,然而 pw 渐渐走向繁琐,界面过于花哨和复杂,看起来不太协调,不大方。

总体感觉 pw6 在界面设计上,还是不如 dz6

二、技术篇

从技术上说, pw dz 都使用了文件方式的数据缓存技术,通过把常用的数据表,比如论坛版面设置参数、基本参数等,生成静态缓存文件(根据条件触发更新或者手动更新),来减少数据库读取次数,提高效率,在这个方面两者非常相似。

1
、模版技术
从模版技术上说, dz 2.5f 版就开始采用的这种静态模版技术,从俺个人角度上说,还是非常适合论坛这种频繁更新的网站程序使用的。它通过动态生成静态模版的方式,解决了模版解析效率的问题。

同时, dz 的这种模版方式,使得修改界面也比较容易,很直观。

pw 使用 echo 语句的这种方式(姑且称其为模版),就寒碜多了,要增加了一个 if 判断条件,就要折腾半天。添加了混合 PHP 代码的模板,在 dreamweaver 中也容易被误操作删除。特别是如果修改的时候稍有不慎,很可能会使网页成了白板(没有输出),让俺每次修改 pw 模版无不如履薄冰,战战兢兢。。。。恐怕这也是第三方模版中, dz 远远多于 pw 的原因吧。

不过 pw 目前在模版上也在改进,现在看 verycms 3.0 就已经开始使用真正的模版技术,不过目前用的都还比较初级。。。

pw6
的模板技术也没啥改进,好处是容易上手,没啥技术含量,模板对速度也没影响,有时候简单也是优点啊。

2
、速度问题
从模版上看,两者的效率应该是差不多的, pw 的模版其实就是直接包含的混合了 PHP 语句的一部分 PHP 文件,而 dz 的模版平时并不需要解析,所以效率应该是差不多的,但是网上总是有人声称网站使用 dz 的速度比 pw 慢,这方面本人没有测试过,不敢妄作评论。而且网站访问速度还是要受很多因素的影响,比如:本地网速、服务器带宽、心理。。。。。客观的评价还是很难的,除非使用专业技术手段。不过从官方网站的速度来看,明显还是 pw 占优啊,呵呵

最近看了一下 dz CSS 文件,明显是用 CSS 用的有点过度了,在 dz 中大量使用了 CSS CSS 文件高达 16KB 左右( pw 只有 2KB 左右),可能造成了 IE 渲染网页的时候,效率比较低。同时,由于 dz CSS 文件过于庞大,只好采用了外置的方式( Link CSS )。

(2007
9 21 日补记:细看 dz6.0 的后台选项,发现 dz 也可以使用内置 CSS 的方式,默认为外置。但是这么庞大的一段 CSS 确实没有必要内置,而且 CSS 越大,则 IE 解析速度就越慢 )

这样如果网速很慢,网页已经或者部分下载完,而 CSS 文件下载没完成(网速慢的时候,常常发生这种情况),那么网页根本就不能正常显示。

在网速慢的时候,光 dz CSS 文件,就要用好几秒,甚至十几秒的时间才能下载,而整个网页只能在 CSS 下载完成以后才能进行正确的显示,这就无怪乎在网速慢的时候, dz 表现大大逊色于 pw 了。

相反, pw 在设计 CSS 的时候,明显是比较简洁,这对网页的渲染肯定是比较有利。同时, pw 采用了把 CSS 文件嵌入的方式,尽管每次访问网页都造成了几 K 个字节的流量,但是实际影响并不大,反而觉得网页打开速度比 dz 要快(这就是 pw 用了一个笨法子,却常常效果比 dz 强的典型案例)。

这方面,建议 dz 痛下决心简化过分臃肿的 CSS 文件,提高网页速度。

三、功能篇

本来只是想写片文章,对比一下两者的功能差异,后来觉得有必要先谈谈 dz pw 的界面和技术,所以这部分功能的比较就成了第三部分,不过是本文的重点,毕竟现在两者在界面上差别不大,技术上的差异对普通用户也没有什么大的感觉,功能才是大家关心的重点(当初俺也就是被 pw 4.3.2 中率先增加的抗 CC ***的功能吸引才上了 pw 的贼船滴)。

下面俺就 dz5.5 pw5.3 的功能,做一个简单的,本人看来是比较深入,可能高手看来仍嫌浅显的分析,请大家指正:

1
、登录方式:
pw
的前台登录和后台登录采用了不同的 Cookie 方式,这样前后台分开的方式,个人感觉,有利于安全,也便于管理。后台帐号与前台帐号可以彻底分开。

dz 的前后台登录是用了一个帐号,尽管在进入后台的时候再次提示输入密码,不过还是不如 pw 方便。

比较特别的是, dz 在注册的时候,要求输入提示问题(选填),而且在登录界面中,也有提示输入的界面,个人感觉,绝对的画蛇添足,无聊。如果说使用提示问题来找回密码,还是有点道理的。用提示问题的方式,让新手看了无所适从,脑袋都晕了

此轮比较: pw


2
、分栏显示:

pw
5.0.1 开始支持左右分栏显示了,然而功能太简单,不能树状显示子板块,此功能与其说有,不如说没有,弄的有点搞笑,属于半成品(倒是也符合 pw 的一贯特点--喜欢推出一些不完美的东西让大家修改)。

看了 dz5.5 的分栏显示,做的还是比较完美的,感觉相当不错了。

pw6
的推出,分栏还是和 5.0.1 一样幼稚,子版面还是出现不了,令人对 pw 官方死猪不怕开水烫的大无畏革命精神无比钦佩。

此轮比较: dz 完胜


3
、后台管理的效率:
pw
的横向操作非常不错,大大节省了管理的难度,特别是在根据用户组设置权限的时候,非常的那个方便啊,这方面 dz 需要改进。

dz
提供了一个方案的方式来解决后台重复操作问题,应该说也有一定道理,但是用起来不太容易上手,如果是设置一个单独的项目,就比较繁琐。

此轮比较: pw


4
、个人空间(文集)功能:
dz5.5
内置了 minispace 个人空间功能,可以说自从 discuz 合并了 supsite 以后,在论坛功能的外展方面,占据了很大优势,吸引了很多个人网站的注意力。

这个 minispace dz 官方的话说,是这样的:
完全利用论坛原有资源,会员不必更多付出,即可拥有个性展示页面
X-Space 完美结合,可顺畅实现 MiniSpace X-Space 自然过渡

大体看了一下,发现这个 minispace 做的很不错,利用它,用户可以把自己的优秀帖子整理出来,形成一个文集的方式,方便别人访问。以前在别的论坛见过这个功能,觉得很不错,没想到 dz 把它整合进去了。这个功能已经可以满足大部分论坛的功能要求了,如果要求更高,比如希望能让用户发布博客文章,按照官方的说法,也可以迁移到 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 虽然可以推送正常了,然而在论坛中更新的帖子,在博客中却不再出现回帖,可以说推送功能在 pwblog 中只是一个无用的点缀而已。

说到底,我们常常希望的只是一个论坛帖子文集功能的方式, pwblog 把论坛中的内容重复推送到博客中,既浪费空间,又没有意义,这方面 dz 远远胜过了 pw ,值得表扬。但 minispace 的功能还是略显简单了些,比如没有文集帖子的分类功能、没有首页推荐帖子等等(也许论坛帖子的分类意义不大,不过有总比没有强吧?)

此轮比较: dz 完胜


5
、防灌水技术

pw5.3
终于接受了俺提出的新手注册第 N 贴以前发帖使用验证码的方式,这样既不影响老用户的使用,又通过验证码方式来限制恶意灌水机器人。 dz 未提供此功能,但是具有可以设定第 N 贴以后不用自定义问答的功能( dz 的验证码很烂,根本看不清,用自定义问答似乎更好一些)。

在防止自动注册方面, pw dz 都使用了自定义问答方式防止自动注册的办法,具体原理很简单,两者实现的都差不多。区别在于, dz 要求设置 10 个以上的问题才能生效,而 pw 只能设置一个问题。另外,还有一个区别,就是 pw 可以自定义问答中内部使用的 form 变量名,可能在防止恶意自动注册方面,会更加有效一些。 pw 的自定义问题只能用于注册,而 dz 的可以用在注册、发帖和短消息等方面。

从目前的具体应用来看,用一个问题就基本上解决了自动注册的问题(长时间实践发现的结果),当然也不排除特大型网站,用一个问题容易被攻破的可能性,这方面 dz 可能就更有效一些。只是 dz 限制要求 10 个以上才能生效的做法,令人费解。

此轮比较: dz


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 可视化编辑器确实解决了以前采用 UBB 代码方式,无法可视化,导致好多非 IT 人士发帖无法控制格式;而和动网一样使用 HTML 方式,又产生大量冗余代码和带来安全隐患的问题。

经过对比发现, dz6 pw6 的编辑器,在 UBBCode 的可视化模式下,从新浪粘贴带图片的内容,都能显示正确。在可视化和代码方式下,切换都非常正确。看来,他们对于 UBB 代码的可视化方式,已经把握的比较好了,技术比较成熟了,看来这是一个发展方向。

另外发现, dz6 的编辑器,还支持 HTML 可视化方式。如果你将版面的 HTML 代码功能开启,则可视化编辑器就自动变成了 HTML 方式(这样其实不太好,应该允许用户选择编辑器的工作方式)。问题是,默认的快速回复还是 UBBCode 代码方式,导致出现了换行问题,这方面不如 pw 做的好, pw 对于 HTML 代码,有一个开关标记,在快速回复的时候,是不使用 HTML 代码的,而且可以随时关闭这个标记,把出现换行问题的内容恢复正常, dz 却不可以。只要你切换到了可视化方式,则换行就乱了,好像还没办法正常切换回去。

所以,如果 dz 的这两种方式您够以更完美的方式,更人性化的方式实现的话, dz 还是要更好一些的,可惜目前没有做到。

此轮比较: pw 小胜


8
、附件上传和所见即所得功能:
pw6
之前的版本,附件还是只能在提交帖子上传以后才能进行图文混排(从 pw6 开始,在上传之前终于可以进行图文混排了)。这方面 dz 要好的多,可以上传前就进行混排,鼠标悬浮可以预览,插入到 所见即所得 编辑器中,而且是直接显示图片。

pw6
的附件功能做了改进,可以预览,可以在上传前插入。但是插入到可视化编辑器中,还是不显示图片,这方面很难说 dz6 的方式好,还是 pw6 的方式更好,不过确实 dz6 更直观一些。

dz
对不参与图文混排的图片附件在帖子中还是显示了太多信息,还有边框,看起来有点影响美观(似乎是受 vbb phpbb 的影响比较大)。而 pw 只是显示了 图片 字样和描述信息,但是 pw 更恶心的是,却把附件图片放到正文文字上方 ,真是屡教不改啊。

本轮比较:平局


9
、附件防盗链技术的分析:
dz
采用了隐藏图片地址,和检测访问来源(可选)的办法来防盗链,应该说服务器负担比较大,效果还行,但不能彻底解决问题。

pw
用的办法更简单,但更有效一些:就是定期或者自动修改附件目录名,应该说这是一个投资少见效快的好办法,技术上也很简单。不过最新的 pw5.3 版本也引入了隐藏附件地址的方式,后台也似乎无法关闭此项功能,似乎有点画蛇添足的味道了。。。。

发现 dz 也可以在后台手工修改附件目录,也可以起到一定效果,只是没有自动修改的功能。

本轮比较: pw


10
、广告功能:
dz
pw 要好一些,广告功能更完善一些。比如贴内广告,在帖子下面的位置类似动网的位置,看起来更整齐一些,而 pw 的位置就让帖子布局显得比较凌乱,不好看。 dz 的贴间广告可以插入大的 Google Banner 广告,或者其它图片形式的广告,展示效果很好。

相比 dz pw 广告的插入位置更少一些,效果也差一些。

pw6
的广告功能增强了不少,可是比如贴内广告,还是实现的似乎不是很完美。感觉有点破坏论坛美观,不甚协调。

本轮比较: dz


11
、头像显示:
dz
不能限制上传头像的长宽尺寸,只能限制总像素数,显得不够灵活,不如 pw 方便。而且超出了一定尺寸的头像,被自动缩放和拉伸了,看起来很难看。而且 dz 还自动给头像加了一个边框,甚是恶心。可见 dz 把简单的事情给弄复杂化了,其实只要和 pw 一样,限制其尺寸,根本不需要拉伸。

本轮比较: pw


12
、附件尺寸限制:
pw6.0
以前版本只能设定所有附件的尺寸,而 dz 可以对个别格式的附件设定上传尺寸,比较灵活一些,特别适合一些 flash 网站,或者技术型网站(比如上传大尺寸图纸等)。

pw6.0 开始终于可以分别设定不同格式的附件尺寸了,有所改进,做的不错

本轮比较:平局


13
、词语过滤:
pw
只能使用普通方式过滤,不支持大小写(很简单的事情,官方就是不办,举手之劳啊)。

dz 不仅能识别大小写,而且具有了一定的模糊识别功能,相当不错了。当然,要是能直接支持正则表达式就更爽了。

此轮比较: dz 完胜


14
、自定义代码功能:
pw6
之前的版本,一直不支持自定义 wincode 代码,比较僵化。要增加功能,就只能修改 js 文件,太过麻烦。。。。

pw60
终于开始提供了自定义代码功能,用起来和 dz 差不多,但是不能像 dz 一样,设置用户组使用自定义代码的权限。

dz
在这方面做的比较完美,要增加或者减少代码、修改播放界面尺寸都很容易,在后台设置一下就可以了。而且几个多媒体标签,也作为自定义代码,在后台可以直接修改参数,非常方便,比 pw 容易多了。

此轮比较: dz 小胜


15
、回收站功能:
dz
可以设定自动清理,而 pw 不能

此轮比较: dz


16
IP 来源显示功能:
dz
IP 地址和来源显示类似动网,看起来不太方便,需要点击小电脑图标才行。还是 pw IP 地址来源显示看起来比较舒服一些。

此轮比较: pw


17
、防 CC ***:
pw
早在 4.3.2 就增加了抗 CC ***功能,而且设置起来比较简单,新手也能看懂。当初俺就是因为这个原因才用了 pw

dz5.5
虽然号称带有 cc ***防护,不过看起来比较难于理解,在后台找了半天也没找到,估计新手是操作不了的。当年某著名站长论坛(用 dz )可就是被 CC ***搞的长期开不了张的,看起来 dz 的防 CC ***功能还有待改进。

此轮比较: pw


18
、备份功能
pw
能支持对 pw 程序以外的数据表进行备份,而且判断标准不是根据表前缀。可以单独备份 pw 表以外的数据表,对于那些建立了新表的插件,备份数据超级容易,这方面比较人性化。

dz
只是根据表前缀来进行备份,比如你设置一个表,叫做 cdb_test ,那么它会把它认为是论坛数据表而进行备份。但是如果你设置一个表,叫做 test ,那就自己想办法去吧。。。。

但是 dz pw 强的是,备份可以压缩,压缩后下载和转存备份文件应该会节省巨大的空间和时间,对于超大型论坛应该是非常管用的。 dz 备份可以指定文件名,而且备份数据用十六进制表示(安全一些,但是占用空间会大一些),估计导入和恢复的中文内码问题就不会存在了。

另外, dz 还可以备份 MySQL Dump 备份(不推荐使用)。

此轮比较: dz 小胜


19
、文件和数据库校验:
dz
内置了文件和数据库校验的功能, pw 只是官方提供了一个文件校验工具,不过用起来有点莫明其妙,有时候提示使用的函数在 php 文件中根本不存在

此轮比较: dz 小胜


20
TAG 、主题推荐和相关贴功能:
pw6
dz6 都支持 TAG 功能。
dz
5.5 版开始,通过 qihoo 实现了相关贴的功能,而且还可以支持主题推荐,这方面比 pw 强了很多,不过据说该功能有时工作不正常。

此轮比较: dz


21
、模版和风格设置
phpwind
可以在后台设置风格 CSS 文件,虽然新手不太容易上手,但确实还是比较方便的。
dz
更进一步,把 css 的内容给解释成了表单的形式,让新手也能操作,不过带来的缺点更加大了:如果你想在 CSS 中增加控制(比如调整行间距等),就不知道该怎么弄了,只好去修改模版。好在 dz 还提供了一个附加功能:在后台可以直接修改模版,而且编辑界面中还带搜索功能,总算是亡羊补牢了

此轮比较:平


功能小结:根据以上分析(以 6.0 版本为依据),按照平局不算分,胜 +1 分的方式统计如下:
PW
7 分, dz 10

最终功能结果:

pw VS dz   7
10

可以看到 dz6 仍然在功能上胜过 pw6 ,但两者之间的差距有所缩小。 pw6 的推出,可以发现有了很多可喜的变化,在本站上次的以 pw5.3 dz5.5 两个版本的功能比较中,结果是 PW 6 分, dz 12 分。

四、总结

总体来说, dz 在功能上,界面上,技术上,论坛功能外延上,略胜过了 pw 。但 pw 也并非一无是处,其抗 CC ***功能,简洁快速的界面,强大的管理功能,独到的防盗链技术,都很有特色。所谓仁者见仁,智者见智,选择 pw 还是 dz ,仍然是一个个性化的问题,具体取决于你对他们的某项特点是否看重。

另外,感觉 dz 在浏览器兼容性上有点小问题,有时候会出现提示,什么从来路不明的什么东西提交信息,检查 norton internet security 配置之类的烦人问题,而且 dz 的验证码太恶心,根本看不明白,都赶上动网的烂验证码了,基本上没法用,只好关掉算完。

需要说明的是,如果是新手,需要选择论坛,还是建议选择 dz ,因为功能比较多,论坛的外延开发的比较好( supsite/X-space 做的很不错),用起来方便一些,而且模版修改起来比较简单。

pw
只是适合老手,和对论坛外延功能不太感兴趣的那些人使用,而且 pw 的模版修改起来需要相当小心,稍有不慎就容易出错。

注:本文转自中国主机论坛网的原创作品