之所以说再论,是因为网上都已经有了好多这方面的文章。以前偶也曾经大体浏览过几片,觉得论述不深,多属泛泛而言,仅仅涉及皮毛,如隔靴搔痒,看了不如不看,越看怕是越糊涂
。
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 的模版修改起来需要相当小心,稍有不慎就容易出错。
注:本文转自中国主机论坛网的原创作品
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 的模版修改起来需要相当小心,稍有不慎就容易出错。
注:本文转自中国主机论坛网的原创作品