具体技术上如何做的, 参见:
在前面的博文里,我讨论了如何从其它Discuz网站导入单篇博文(
链接)。但有时候博主需要的不是导入一篇博文,而是导入博客里的所有博文。这经常发生在博主要在一个新网站上建博客。比如不久前中科院办的科学网(也有人称之为科邪网)封了一个名叫嵇少丞的加拿大华人教授,他就自办了一个华科网(希望不要变成科妄网),在那里他们就帮助科学网的博主们把博客办到新网站来(
链接)。在本文中,我介绍下我写的一个提供这个功能的新插件:日志搬家。它可以将其它网站里的整个博客搬到自己网站来,也可以搬单篇博文。



插件安装和用法:
和通常插件安装过程一样,将本文文后所附的压缩文件解压到网站的source/plugin后会在其中产生本插件的文件夹txgz_blog_importer。然后进入管理中心的应用->插件页里的"未安装的插件"部分里会看到本插件"TXGZ日志搬家 0.8"。点击"安装"后就可以在"未启用的插件",这时点击"启用",就能在网站上用这个插件了。 plugin.php?id=txgz_blog_importer:blog 是个提供这个功能的单独网页。可以将链接加在网站的合适的位置。比如将这个链接放在工具页上,或者放在导航栏里作为一个子项(在界面->导航设置里设置)。
一些技术讨论:
1) 网页解析工具:之前用PHP解析网页内容时,我一直用PHP带来DOMDocument 和 DOMXPath 类,但发现它解析网页某些网页时给出错误信息(如
链接 文中的日志数和
链接 文末的转载须知)。所以这次改用了S.C. Chen 等写的PHP Simple HTML DOM Parser (
链接)迄今为止用下来只发现一个问题:没找到我彼岸网日志列表页首页(
链接)里的翻页链接条(第二页后都没问题),所以不得不加上DOMDocument的代码作为后备。
2) 汉字编码转换:原来博客所在的网站和新网站不一定用同样的汉字编码,所以有可能需要转换博文的编码(如将 GBK 转为 UTF-8)。Discuz 提供了函数 diconv 来实现这个转换。
插件下载:
http://www.bian-wang.com/upload/txgz_blog_importer_151230.zip