one More – 后含PJBlog到WordPress的完美转换|带评论及用户

Update again: 更新了转换文件。同时我也说明一下问题出在哪。原来是,我的某一些的PJblog数据库中的日期形式似乎是“2007/1/3”这样的,而大多数PJblog的数据库中的日期是“2007-1-3”,因此我在split字符串到数组的时候用的分割符号是“/”,就无法定位“-”,得到的数组就没有三个元素(日月年)。这样导致VBScript报错“Microsoft VBScript runtime (0x800A0009) Subscript out of range: ‘[number: 1]’ …..connvert.asp, line 467”。
新版转换程序 – http://aw.awflasher.com/awpatched.rar

现在已经改了,如果有什么问题请留言。

Update@200705 近日收到很多转换失败的例子,我目前正在抽空review。不知道为什么很多人会出现失败的情况。但就我个人来讲,PJ到WP,最重要的是1、避免时间日期格式的错误;2、最好在Linux下(用VMware,实在不行问周围玩Linux的朋友)。按照这两个思路去check,应该能找到答案。

Update@20070302 已经修正了编码的一些小bug,请大家再试试看~ 下载地址不变

【牢骚开始,可以不看】呃……停止更新大概一周了吧。在我的Blog历史上,这种情况很少见。让我安心闭嘴不blog的理由只有少数几个,目前来说,这些理由都不成立。
有很多朋友建议我不要停止更新LBS,而我则心已死,更何况失去PR、Alexa乃至大把的GoogleAd美元支票,换回的是一种改变、脱胎换骨的姿态和决心。足矣。如果您只是想知道PJblog到WordPress转换的问题,请仔细阅读此文后几段。

由于我要把原来的www.awflasher.com下所有的内容迁移到Apache/MySQL平台,导致我不得不处理大量本Blog之外的工作,例如我必须把另外两个Blog系统(PJ’s)和一个SXNA的聚合系统迁移到另外的WordPress和Lilina下。这样一来工作量是非常巨大的,更何况我本身的时间、能力所限。

曾经只懂AS,如今要干除了AS外的XHTML、JavaScript、PHP、MySQL,还包括把Access的Database通过ASP拿出来,即便是有前人的工作,但为了追求完美,我必须自己去看TFSC(the fxxking source code),光用VBScript写一个JavaScript的split我就找了好多资料……然后就是无数的debug、patching。这一些列工作其实也谈不上什么颇有技术含量,只是太累了。光用PhpMyAdmin和MySQL命令行来DROP、source,我就要往返很多次。

不后悔当初选择的LBS2,只祈求能有更多的时间。

这次大迁移我全部用业余时间完成,公司的项目我扪心自问,没有任何影响。这一切,还要感谢 一米六二、Yskin、Beta@Byhh、IceFox@kyxk、Andot@Coolcode、zhouqb等等太多的朋友的支持。【牢骚结束】
目前lilina由于PHP糟糕的SOAP支援使得我的一些聚合站点几乎没有进展,而PJ-WP和自己的转换则已经基本告一段落。其中PJ-WP使用了UtomBox的转换程序,但是这个程序忽略了Movable Type和WP之间的时间格式的问题,导致麻烦非常多,幸亏Beta发现了这个问题并告诉我解决思路,具体的解决还是得花大量的时间来做。唉!而且更要命的是,PJ的转换程序是用VB写的,我非常厌恶VB的语法。真不明白我小时候怎么那么迷恋Basic……

Updating :
Beta@Byhh指出了问题所在,在wp-admin/import/mt.php中,日期格式与pj的output并不一致。nnd,郁闷了我N久……
DATE: 30/01/2007 15:25:36
全部改为
DATE: 01/30/2007 15:25:36
似乎就可以了……

OK.done.就等Mysql的shell权限设置好再source了。不知道对方要配置多久,等吧……

2007年2月3日,0:18,成功地写了一段猥琐的VB,搞定了Pjblog-WordPress的转换。
当然要感谢Utom所做的贡献,主要的数据抽取代码都是他的功劳。
http://aw.awflasher.com/awpatched.rar

总结,PJBlog到Word Press容易出问题的关键细节:
一、时间月份问题,这个我的fix已经解决了。
二、导入时用Linux系统。具体原因不太清楚……在Win32下面强制刷新也可以,但我有洁癖,不希望出现FatalError(为此我花了N个小时装Ubuntu……)Linux跑Apache/PHP/Mysql就是牛逼
三、用户名不得含有中文。目前我没有什么好方法解决,应该跟WP的表构造有关,懒得仔细看了。

补充:WP下多人信息发布(适用于班级blog),可以采纳Role Manager插件,下载@http://www.asymptomatic.net
此外,发现一个不错的plugins clouds @ http://www.urbangiraffe.com/plugins/

转换实例@
http://www.awflasher.com/0205 -> http://www.hustei0205.com

PS:继续补充几点
1、LBS和PJBlog的转换都要注意的一个问题,就是相对路径一定要统一成绝对路径!因为你可能在WP中使用mod_rewrite。这样会导致严重的路径错误问题。如果不嫌麻烦可以正则匹配一下。
2、LBS中<!–more–>标签打断的UBBCode不能正常解析,要手动编辑,此外,LBS中使用了老米甲的HTML编辑器的,要在转换程序中加一个解析UBBFlag为html的分支
3、WordPress的admin密码如果遗失,可以打开wp-login.php,修改注册模块,去掉新用户注册的MD5检测。

Advertisements

80 thoughts on “one More – 后含PJBlog到WordPress的完美转换|带评论及用户

  1. 可怜的孩子!给逼着搞PHP去了,反正是要搞开源社区的东西,不如一步到位搞JAVA.
    我就是因为要做WPF/E,一步到位,横竖就是搞.NET,跟随微软走了.

  2. 引用自 Clear可怜的孩子!给逼着搞PHP去了,反正是要搞开源社区的东西,不如一步到位搞JAVA.
    我就是因为要做WPF/E,一步到位,横竖就是搞.NET,跟随微软走了.死也不跟M$。如果非得跟M$,我就去学文科。

  3. 效率还挺高的,不愧是老郭啊!!!

    预祝你的新版blog和班级blog早日开张。

    虽然没什么用了,也说说我改的过程:

    配server就搞了半天,汗~~ 昨天装了mysql老版本,发现不兼容COLLATE=utf8_unicode_ci,改了mysql5.2。又配置了半天mysql(ps:新版mysql4win比较诡异,必须set password以后才能start server),唉,扔的太久了~~

    我建数据库用的gb2312。
    在导入post的时候发现繁体的帖子不能导入,还手动改了过来。
    另有三篇帖子也有格式问题我是手动改的。

    后来发现你的categories那个table field没有导入全。(我是先drop掉原来的categories)

    另外post那个table的post_type字段没有置post。
    ———————————-
    建议:时间导出最好用timestamp,然后在导入的时候再转成需要的格式即可。

  4. 汗 我的网站是从LBS转到Drupal的..
    那才叫一个伤心 ..

    没有前人的经验 我只能看SuSu的LBS到Wordpress转换思路..
    不过还好 有了那个思路
    像日志,评论,时间,大多数的数据都转换回来了..

    但是原有的url我也不知道怎么转换,考虑后告诉说可以通过定义一个404错误页面,
    页面具体的内容大概是定义一个var x=web,取出请求的url中的weblog后之后的float值,对数据的日志的列表键进行匹配,
    如果值相同,则跳转到新程序对应的页面,如果不同则输出一个404错误的内容…

    但是对url字符串的截取的时候有问题没有搞明白..
    就没有做了..
    不过思路应该正确..

    等到休息了看了会小说后,又觉得没有啥必要..反正我的站访问也不是很大..
    虽然可能是借口..

  5. 引用自 icefox后来发现你的categories那个table field没有导入全。(我是先drop掉原来的categories)时间fix之后似乎就ok了。等我上线了给你一个WP的Admin权限,帮我编辑哈^_^
    我自己也手动编辑了不少。

  6. 呵呵.刚才看了你的留言了.
    Wordpress和Drupal两者其实在程序上都是差不多的。
    但是细微的差别上有不同
    首先,Wordpress官方把自己定位在Blog上.大多数的功能都是从Blog切入的。而Drupal则定位在CMS上,而它的日志功能是通过程序内置的一个Module来实现的.也就是说Drupal的元素更多于WP..
    人性化上,Drupal人性化不够,我觉得。不知道是理念还是因为别的原因,很多人性化的理念都不及WP。比如说是程序的安装,是最新的一个版才支持Web安装的,原来的都是傻不隆咚的手动导sql..这只是其中一方面,感觉其它不少方面都在人性化上弱于WP.而WP更适合广大人群操作..而Drupal甚至在有些地方都有致命的硬伤,到现在最新的版本,上传附件都只能够传到一个目录上,如果一个目录下文件过多要修改上传目录,还得手工修改,不能够自动创建..这个硬伤没把我恶心死,现在我在试着写个Module在完善一下它..
    再有Module方面,全世界研究Drupal的人海去了,有贼多模块可以帮你把你的站点功能更加丰富和完善,API机制合理而且实用..这一点可能是WP赶不上的..
    在有对界面的定制上,Drupal比较不错的内置有一个Block模块,可以很方便的修改块区的位置..但是有一点不好的地方就是如果要很细致的修改就不得不稍微懂那么一丁点儿PHP了..其实也不是难,可是对于WP可以在线修改模板文件来说,差远了..

  7. 在本地化方面,我不是太了解,只是听说WP对中文支持不是很好. Druapl可能要优于WP.在中文支持网站上,似乎都差不多,不过我更喜欢Drupal内置的Forum Module,论坛简单却实用..讨论区的人回答也挺细心。wordpress.org.cn上的会员热心程度不如Drupal.

    另外有一个比较应该说的是Drupal安装程序很小,解压缩后也不过2个M左右,其实还是因为模块的原因,内核很小的。但是使用上,普遍存在一个说法就是Drupal有一点吃资源,至少我觉得在4.7版本,我有这种感觉,明显要比Wordpress要耗资源一些..

    如果要做一个博客的话,我个人推荐还是用WP,人性化方面WP完全不是Drupal能够比拟的.当然,如果你考虑做一个网站则别外,因为Drupal是一个CMS(可以用它结合一些的模块实现常见的网站比如说是Dig,Video Share),而不仅仅是WP的CMS OF Blog!

    废话不少,不过不知道能够不能够对你有用..

    (瀑布汗…写的内容是不是多了..)
    超过限制了..

  8. 非常感谢老弟的介绍:)
    CMS对我来说还用不上,至少没有精力和经验去维护一个CMS的信息架构。WP确实有太多的入门级用户,我看到很多老外的水平都在我之下,咔咔~但我想这也正是WP更普及的原因吧,毕竟Blog这东西,不能搞得太复杂。Druapl听说过,作为用户,我也体验过里面的Forum,相当爽:)
    Evance今年毕业吧?

  9. 不用谢哈..
    大四的说哈 考研失利哈 明年就抡起双手干活了…

    Drupal其实很有Web2.0风格..
    呵呵 可以做一个以用户为基础的社区….

    像Dig啊 VideoShare啊都可以做的..
    就是不平民化….

  10. 来AW这里的可爱有各种爱好的女生还真是多啊~
    刚才去了来这里的一个女生的BLOG,再次唤起了我对各种锦和绣的喜欢:http://www.hgemc.com/onlineshop/ArticleShow.asp?ArticleID=85
    http://image.baidu.com/i?tn=baiduimage&ct=201326592&cl=2&lm=-1&pv=&word=%D7%B3%BD%F5&z=0

    对了,想起我很敬佩的一个杭州女生,她的才华之高以至于我功夫不成,绝不去论坛找她斗嘴(法),哈哈。但我知道,如果说庄子有惠子这个朋友,那么她就是我现在认为的惠子……让之现在于我上,将来可未必……

    她的一段文章〈感谢分手〉:
    …… 我托人带话给他 “就算我能原谅你,也没有感情和感觉了,这样的关系不生不死,又有什么意思呢?就是回到你身边,也是强迫,我不会让你快乐的!”

    五年后,我又在街上一次偶遇 碰见了他,但这次我们都坦然,在一起走了一段路的时候我笑着对他说“多亏当时我们分手,我找到了尊严和更大的空间,没有那次的脱离,我也就不会痛下决心去闯去拼,我也就不会见识到圈子以外更大的世界和舞台,我现在非常满足而自信了!”确实,如果当初我原谅他,只会仍然是说不定的再一次的不珍惜和不尊重,反而让两个人的年华在互相负气和失望中逝去。

    他也笑了,说道“我也是!感谢你当时的绝情和坚持!如果你当时原谅了我,说不定对我的刺激和教训就不是那么刻骨铭心,就是生活再有其他美好恐怕也要被我错过的,现在我已经是我们市里最年轻的主任了!我也觉得尊重别人其实给我带来的益处更多,越考虑到别人越给自己带来威信!真的要谢谢你!感谢分手!”原来他当时觉得自己因为先前被优越和顺利冲昏了头脑,觉得自己不可一世的时候,觉得自己什么都拥有了,不可能失去什么的;自从我的风暴刮过后,他才突然觉得有种撕裂般的痛楚和空虚得可怕的茫然。几个月不刮胡子,几个月上不了手术,他说那种感觉和经历真的太让人深思了。

    从那以后,我更加坚定了一种信念:当人失去一种美好的时候,就意味着他生命中另一种升华开始了。每次煎熬过后,就是一次历练,是一次收获!是一种财富!

    每次有少男少女们因为感情的事情纷扰,我都会告诉他们:分手和告别带来的不只是失落和难过,更是希望! 关键是看你会不会将教训牢记。如果你够聪明,请感谢分手!

  11. 其韵文:
    ……
    第七,八段:

    念读《情咒》,如凄人之娓娓,声声慢语,欲吐欲藏;节节幽怨,抑扬有致,抱烈满膛。情达深处,潸然泪下。
    迎送《三姐》,似红娘之姗姗,骞骞急行,如搀如傍;处处喜庆,调拨滑利,捧挚寸肠。意至婉境,超然神往。

    第九段:

    及至鹤闻《年华》,归林而傍。又犹晨星未退,神迷意懒,弃榻推窗;突觉清风扑面,
    瑞蔼袭身,仙气徜徉。原是空山翠谷,萧萧簌簌;万籁俱寂,生灵暗长。 不禁攀爬举
    步,越岩而上;独声一语,喑呜回荡。未想惊鸟云集,呼此唤彼,远近错落,婉转嘤啼。
    可是凤居灵山,百臣朝凰? 引得山泉释冻,潺潺而应;万物感化,驻足屏息,怎舍这生机琅琅?

    (这几段文字写在《情咒》《刘三姐》《感谢年华》中的精彩奉献)
    ——————————————————
    她做的蹩脚FLASH图片:http://bbs.stardisc.net/showimg.asp?BoardID=2&filename=2006-5/200651021269755.gif
    ——————————————————————————
    AW,以后我也要学一些小的动画制作,谁让我碰上我的这个‘死嗑’,HAHAHA!
    她学的是西医,时而习跆拳道,时而打理家族生意……

    不要删,你这里已经不写日志了。让人见识这种女生。我若是无缘,断碰不上如此诸多好女子。立志让我奋力,不论将来是否有心情再与她笑骂斗法,然于生活中必能遂天之志,达乎物外也,哈哈哈!

  12. 以前用过utom的转换,但他的是直接在页面显示内容,我的日志多了会让浏览器挂掉 -_-
    很高兴看到你写的附件版。的确可以把我500篇日志转过来。但是也有几个问题
    1,时间问题
    按照你的转换应该是myDateArr = Split(myDate, “-“)
    但pjblog的日期并不存在“-”啊
    我改成
    If InStr(myDate,”/”) Then
    myDateArr = Split(myDate, “/”)
    Else
    myDateArr = Split(myDate, “-“)
    End If
    否则会提示下标越界

    2,还是时间问题。我已经把时间格式转成DATE: 21/9/2006 03:35:58这样了 可导入后会有很多1970-01-01这样的日期

    3,UBB问题,我没有改动过Noname2.asp的其他地方 但是似乎替换没起作用?

    方便的话QQ帮我好么? 51756101
    谢谢

  13. Microsoft VBScript runtime ���� ‘800a0009’

    Subscript out of range: ‘[number: 1]’

    /dearlog/convert.asp���� 421

    出现了这堆东西

  14. 看一下421行的code吧。pjblog的code说实话真是让我比较失望:(不知道为什么每次取出来的日期格式都不对劲。

  15. 通过convert.asp获得下面这些,我应该怎样导入wp,请指教。。。
    TITLE: *
    AUTHOR: Donson
    DATE: 11/30/2006 9:28:42
    STATUS: publish
    ALLOW COMMENTS: 1
    ALLOW PINGS: 1
    CATEGORY: ***
    —–
    BODY:***
      

  16. aw ,救命啊,我将生成页另存为xml文件,然后在wp后台用[Movable Type 和 Typepad]导入后,只有第一篇是文章,之前的文章都成了评论。。。
    我用的是2.2.1版

  17. 我是使用Linux平台的,用哪个版好?如果我导入了,再升级到2.2.1行吗?还有,在导入时,是选[Movable Type 和 Typepad]导入吗?

  18. 强烈关注这更网站,我也要转!!!!
    只是这更转换过程怎么没详细教程啊,既然听AW说要LINUX,那我就装LINUX去咯,装完再回来看具体怎么操作

  19. 我转好了。呵呵
    不过之前的UBB用不了,比如[html][/html]这些,[html][/html]不能用,直接影响了布局,没办法。只好一篇一篇地查看。。。

  20. 问个比较菜的问题,我把那个convert.asp上传到根目录以后.运行为什么提示http500内部服务器错误?我的数据库是默认的,所以对那个convert.asp没有做任何更改

    求助!应该如何操作呢?

  21. 晕了,怎么我是出现这样的错误?

    Microsoft VBScript 编译器错误 错误 ‘800a03ee’

    缺少 ‘)’

    /blog/common/cache.asp,行237

    if stat_ShowHiddenCate or stat_Admin then Category_code=Category_code&(““&Arr_Category(1,i)&” [“&Arr_Category(7,i)&”] “)
    —————————————————————————————————————————————————————

  22. 貌似http://aw.awflasher.com/awpatched.rar下载不了了,请站长检查一下

    如果你的网络不方便提供下载的话,请给我一份copy,我可以共享给大家

    如果可以的话,请mail给我,因为我不能保证及时来你的网站查看,请谅^_^

  23. 我朋友的blog是wp2.7.1, 用这个程序转为Movable Type后,只能导入第一条数据,没办法,在此基础上自己改了一下,直接输出成wp导出的xml格式,然后半手共方式[只所以说半手工,就是wp的xml备份的头尾需要手工添加], 基本完美实现pjblog到wp的完美转换,具体例子:http://www.iwumei.com/blog . 不是做广告,只是提供一种思路, 在aw程序的基础上很容易改成 wp导出的xml备份格式。 需要的给我留言。 其实很简单的。
    比如:
    aw以前标题是输出成:TITLE:
    直接换成:

    其他依次类推,时间部分,pjblog 里没有星期,不输出也可以,保留输出的 “,” 逗号就行。

  24. 补充一下,本方法比较适合评论比较少的blog,当然仔细对照wp的xml格式,也可以把评论部分xml化。 而且此种方式不受系统闲置,本次转换全部是在win2k3下实现的。

  25. 补充一下,本方法比较适合评论比较少的blog,当然仔细对照wp的xml格式,也可以把评论部分xml化。 而且此种方式不受系统闲置,本次转换全部是在win2k3下实现的。

  26. 您好,我有个PJBLOG想转化成wordpress,可是您的工具下载不了,请问能不能发给我个最新版的,谢谢您。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s