编程之家 52php.cn 现在喜欢用Z-BLOG,于是就在本机先搭建了一个平台,等完成以后发现在一个问题,原来是使用的OBLOG的程序.网上并没有这两个博客互转的合适例子,所以就头疼了一把,经过自己一翻努力,呵呵终于成功了(不过不带TAG的内容,这个太麻烦了),现在我就把自己的操作方法说出来,大家按这个思路可以根据自己的情况改造一下. 首先先把它这个的ACCESS数据库导到MS SQL2000(或更高的版本中)中,如果没有你就自己写个ASP页面来处理吧,在导入完成后,就可以通过SQL语句来进行相互访问了. 这个是Z-BLOG主要的博客内容表(可以根据你自己想要的内容来增加): SELECT LOG_CATEID, LOG_AUTHORID, LOG_LEVEL, LOG_TITLE, LOG_INTRO, LOG_CONTENT, LOG_IP, LOG_POSTTIME, LOG_VIEWNUMS, LOG_TAG, LOG_ISTOP FROM BLOG_ARTICLE 这个是你OBLOG的用户的博客内容(也可根据自己想要的内容来增加),记得查清你的用户编号,我想这个应该不难: SELECT TOPIC, LOGTEXT, ADDTIME, TRUETIME, IIS, CLASSID, LOGTAGS, LOGTAGSID, ABSTRACT FROM OBLOG_LOG WHERE USERID = 2 好了两个主表都找到了,接下来要做的就是看看你的这两个博客里的分类是不是一样的,如果不一样,你最好列举一下它们的对应关系以便后面的CASE语句中用,接下来就是主要的改造语句: INSERT INTO BLOG_ARTICLE( LOG_CATEID, LOG_ISTOP) SELECT CLASSID= CASE CLASSID WHEN 3 THEN 1 WHEN 23 THEN 3 WHEN 2 THEN 4 WHEN 4 THEN 5 WHEN 14 THEN 8 WHEN 1 THEN 8 ELSE 7 END, 1, 4, TOPIC, ABSTRACT, '127.0.0.1', 0 FROM OBLOG_LOG WHERE USERID = 2 以上为我的转换的例子,因为两个博客建的栏目不一样,所以我用CASE转换了一下,大家可以根据自己的栏目内容编号进行修改 我的OBLOG用户编号为2.如果大家在转换中遇到什么问题可以进行沟通。 另外还有部分要修改的就是原来OBLOG中的下载地址和Z-BLOG中的地址是不同的,如果你网站直接是根目录就直接换成下面的就好,如果是http://www.XXX.com/blog/这样的目录,建议你还要修改一下下面的存储过程. --SELECT LOG_ID FROM BLOG_ARTICLE WHERE LOG_CONTENT LIKE '%UPLOADFILES/%' --定义替换的字符串 DECLARE @S_STR VARCHAR(8000),@D_STR VARCHAR(8000) SELECT @S_STR='"UPLOADFILES/' --要替换的字符串 ,@D_STR='"/UPLOADFILES/' --替换成的字符串 --因为只能用PATINDEX,所以对于搜索字符串做处理 SET @S_STR='%'+@S_STR+'%' --定义游标,循环处理数据 DECLARE @ID VARCHAR(500) DECLARE #TB CURSOR FOR SELECT LOG_ID FROM BLOG_ARTICLE WHERE LOG_CONTENT LIKE '%"UPLOADFILES/%' OPEN #TB FETCH NEXT FROM #TB INTO @ID WHILE @@FETCH_STATUS=0 BEGIN --字符串替换处理 DECLARE @P VARBINARY(16),@P1 INT,@P2 INT,@RPLEN INT,@STEP INT,@LEN INT SELECT @P=TEXTPTR(LOG_CONTENT),@RPLEN=LEN(@S_STR)-2,@STEP=LEN(@D_STR),@P1=PATINDEX(@S_STR,LOG_CONTENT),@LEN=DATALENGTH(LOG_CONTENT),@P2=0 FROM BLOG_ARTICLE WHERE LOG_ID = @ID WHILE @P1>0 BEGIN SET @P2=@P1+@P2-1 UPDATETEXT BLOG_ARTICLE.LOG_CONTENT @P @P2 @RPLEN @D_STR SELECT @P2=@P2+1,SUBSTRING(LOG_CONTENT,@P2+1,@LEN))FROM BLOG_ARTICLE WHERE LOG_ID = @ID END FETCH NEXT FROM #TB INTO @ID END CLOSE #TB DEALLOCATE #TB --显示结果 SELECT LOG_ID,LOG_CONTENT FROM BLOG_ARTICLE WHERE LOG_CONTENT LIKE '%UPLOADFILES/%' GO 好基本上的工作已经完成,至于以前的TAG内容,大家都想想办法吧,这个的确有点难.最后再到Z-BLOG中把文件重新建立一下,相关于重新生成HTML文件.一切都完成了去看你的博客吧! (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|