<?php
/* ============================================================================ */
/* LB5000II to Crossday Bulletin 论坛转换程序 */
/* 本程序用来转换 LB5000II v20310 到 Discuz! 2.0.0 */
/* ============================================================================ */
/*
本程序的功效
1. 本程序可以转换 LB v20310 的用户资料, 板块(包括名称, 介绍, 贴数, 回复数,
及版主等), 各板块的贴子(包括标题, 内容, 作者, 回复数, 浏览数等等).
2. 本程序不能,或者不转换的内容包括:
LB 的论坛分类信息.(您可以转换完后手工添加)
LB 的贴子浏览数
所有的贴子图标 (因为不每个论坛设置不同,无法识别)
投票贴内容及投票
3. LB 中原有论坛, 不管打开还是关闭, 是否隐藏等, 都会被转换为"公开"模式.
使用前请务必仔细阅读下面的须知:
1. 请先使用 Discuz! 安装程序, 将 Discuz! 论坛程序安装到服务器. 否则无法转换.
2. 设置好下面的 LB 目录属性.
3. 本程序会覆盖 Discuz! 数据库中相关信息.
4. 在下面的变量中设置好数据库参数(主机, 用户名, 密码, 数据库名)
5. 转换过程中如果不出现错误,则会一直自动转换直到完毕.如果转换成功, Discuz! 论坛即
可用原来的管理员账号登录管理论坛.
6. 使用完本程序请务必删除, 否则可能被别人再次转换,覆盖掉 Discuz! 论坛新贴.
*/
// 请仔细设置下面变量!! ==========================================================
//$lb_user = "c:/httpd/cgi-bin/lb5000/members02157897/"; // LB的用户资料绝对路径, 最后不要遗漏"/"
//$lb_dir = "c:/httpd/cgi-bin/lb5000/"; // LB 的绝对路径, 最后不要遗漏"/"
$lb_user = "E:/InterPub/wwwroot/cgi-bin/members04052149/"; // LB的用户资料绝对路径, 最后不要遗漏"/"
$lb_dir = "E:/InterPub/wwwroot/cgi-bin/"; // LB 的绝对路径, 最后不要遗漏"/"
// 以上两个路径变量格式为 windows 类主机的格式. 如果为 unix 类主机, 上述两个变量类似的格式为:
// $lb_user = "/usr/people/clyse/cgi-bin/bbs/members951753/";
// $lb_dir = "/usr/people/clyse/cgi-bin/bbs/";
$dbhost = "localhost"; // 数据库主机名
$dbuser = "aa"; // 数据库用户名
$dbpasswd = "aa"; // 数据库密码
$dbname = "discuz"; // Discuz! 数据库名
$tpt = 300; // 一次转换多少个文件(threads per task)
$boundary = "\t"; // LB 数据分割符, 建议不要修改
$pre = "cdb_"; // Discuz! 数据库表前缀, 建议不要修改
// 下面部分不需改动!! ===========================================================
function redirect($url) {
echo"<script>";
echo"function redirect() {window.location.replace('$url');}\n";
echo"setTimeout('redirect();', 1150);\n";
echo"</script>";
}
function postify($message) {
$message = addslashes($message);
$message = str_replace("<p>", "\n", $message);
$message = str_replace("<br>", "\n", $message);
$message = str_replace(" ", " ", $message);
$message = str_replace("&", "&", $message);
$message = str_replace(""", "\"", $message);
$message = str_replace(";", ";", $message);
$message = str_replace("'", "\\'", $message);
$message = str_replace("<", "<", $message);
$message = str_replace(">", ">", $message);
$message = str_replace("\$", "\\$", $message);
return $message;
}
@ob_implicit_flush();
@set_time_limit(1000);
header("Content-Type=text/html; charset=gb2312");
if(!get_cfg_var("register_globals")) {
@extract($HTTP_GET_VARS);
}
mysql_connect($dbhost, $dbuser, $dbpasswd) or die ("数据库连接失败");
mysql_select_db($dbname);
if(!$action) {
echo"LB5000II v20310 到 Discuz! 2.0.0 论坛转换程序 by Crossday Studio<br><br>\n";
echo"使用前请仔细阅读程序中的说明,以保证转换过程顺利进行<br><br>\n";
echo"请确认您已经成功的安装了 Discuz! 2.0.0 版, 否则转换后的数据不能工作.<br><br>\n";
echo"如果中途出现转换超时, 请按浏览器的后退键, 重新运行转换程序, 直到转换成功为止(不会出现数据重叠的问题).<br><br>\n";
echo"<br><font color=\"red\"><b>用户和论坛的转换过程需要选择, 贴子的转换过程是自动的(如果不出现错误).</b></font><br><br>\n";
echo"<br><a href=\"lb2discuz.php?action=user\">点击这里开始转换</a>";
} elseif($action == "user") {
echo"<font color=\"red\"><b>正在进行转换第 1 步(共 4 步)</b></font><br><br>\n";
echo"现在转换用户资料<br><br>";
mysql_query("DELETE FROM $pre"."members");
$userdir = dir($lb_user);
$count = 0;
while ($userfile = $userdir->read()) {
if (eregi("\.cgi$", $userfile)) {
$fname = "$lb_user/$userfile";
$fp = fopen($fname, "rb");
flock($fp, 3);
$userdata = fread($fp, filesize($fname));
fclose($fp);
$user = explode($boundary, postify($userdata));
$user[1] = md5($user[1]);
if($user[2] == "Member" || $user[2] == "member") {
$user[2] = "";
}
if($user[3] == "smo") {
$user[3] = "超级版主";
} elseif($user[3] == "mo") {
$user[3] = "版主";
} elseif($user[3] == "ad") {
$user[3] = "论坛管理员";
} else {
$user[3] = "正式会员";
}
if($user[7] == "保密") {
$user[7] = "127.0.0.1";
}
if($user[8] == "http://") {
$user[8] = "";
}
$signature = explode('aShDFSiod', $user[15]);
if($user[18] == "noavatar") {
$user[18] = "";
}
echo "转换用户 $user[0]<br>\n";
mysql_query("INSERT INTO $pre"."members (username, password, regdate, postnum, credit, charset, email, site, oicq, status, location, bio, signature,showemail,timeoffset, icq, avatar, yahoo,customstatus,theme,bday,tpp,ppp,newsletter,regip,timeformat,msn,dateformat,lastvisit)
VALUES ('$user[0]', '$user[1]', '$user[13]', '$user[4]', '$user[4]', 'gb2312', '$user[5]', '$user[8]', '$user[9]', '$user[3]', '$user[11]', '$user[12]', '$signature[0]', '1', '8', '$user[10]', '$user[18]', '', '$user[2]', '', '', '20', '10', '1', '$user[7]', 'h:i A', '', 'Y-n-j', '$user[26]')") or die(mysql_error());
}
}
$userdir->close();
mysql_query("DELETE FROM $pre"."members WHERE username=''");
echo"<br><br><a href=\"lb2discuz.php?action=forums\"> 点击这里转换论坛设置[会覆盖原有论坛及贴子] </a><br>\n";
echo"<br><br><a href=\"lb2discuz.php?action=finish\"> 点击这里退出程序 </a>\n";
} elseif($action == "forums") {
echo"<font color=\"red\"><b>正在进行转换第 2 步(共 4 步)</b></font><br><br>\n";
echo"现在转换论坛设置. 注意: 只能转换论坛而不能转换分类. 分类需转换完毕后手工添加<br><br>\n";
echo"而且,所有 LB5000 的论坛,即使原来的\"关闭\"的,转换后都被设置为\"打开\"<br><br>\n";
mysql_query("DELETE FROM $pre"."forums");
$allforums = file($lb_dir."data/allforums.cgi");
for($i = 0; $i < count($allforums); $i++) { // 添加论坛
$forum = explode($boundary, trim($allforums[$i]));
echo "转换论坛 $forum[3]<br>\n";
$forum[3] = postify($forum[3]);
$forum[4] = postify($forum[4]);
$forum[5] = postify($forum[5]);
mysql_query("INSERT INTO $pre"."forums (type, fid, name, status,lastpost,moderator, displayorder, description,allowhtml,allowsmilies,allowbbcode,allowimgcode,posts,threads,fup)
VALUES ('forum', '$forum[0]', '$forum[3]', '1', '', '$forum[5]', '$forum[0]', '$forum[4]', '0', '1', '1', '1', '$forum[13]', '$forum[12]', '0')") or die(mysql_error());
$fid .= $forum[0]."_";
}
mysql_query("DELETE FROM $pre"."threads");
mysql_query("DELETE FROM $pre"."posts");
$fid = substr($fid, 0, strlen($fid) - 1);
echo"<br><br><a href=\"lb2discuz.php?action=threads&forumid=$fid\"> 点击这里转换贴子</a><br>\n";
echo"<br><br><a href=\"lb2discuz.php?action=finish\"> 点击这里退出程序 </a>\n";
} elseif($action == "threads" && $forumid) {
$id = explode("_", $forumid);
$lb_forum_dir = $lb_dir."forum$id[0]/";
if(!$offset) {
$offset = 0;
}
echo"<font color=\"red\"><b>正在进行转换第 3 步(共 4 步) 如果您的贴子数据很多,则这一步需要时间较长</b></font><br><br>\n";
echo"现在转换贴子. 本转换可能经历多次跳转, 请不要关闭浏览器.<br><br>\n";
echo"现在开始转换目录 $lb_forum_dir 中的主题和贴子.<br><br>起始文件号 $offset<br><br>";
$handles = 0;
$filesreaded = 0;
$forumdir = dir("$lb_forum_dir");
while($handles <= $offset) {
$forumdir->read();
$handles ++;
}
wh
没有合适的资源?快使用搜索试试~ 我知道了~
LBXP/MX to Discuz! 转换程序
共1个文件
php:1个
需积分: 50 88 下载量 16 浏览量
2004-08-19
01:43:59
上传
评论
收藏 6KB RAR 举报
温馨提示
本程序用来转换 LB5000II v20310 到 Discuz! 2.0.0
资源推荐
资源详情
资源评论
收起资源包目录
20040819014937.rar (1个子文件)
lb2discuz
lb2discuz
lb2discuz.php 10KB
共 1 条
- 1
资源评论
microrain
- 粉丝: 1020
- 资源: 598
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Win64OpenSSL-3-3-0.exe
- 课高分程设计-基于C++实现的民航飞行与地图简易管理系统-南京航空航天大学
- 航天器遥测数据故障检测系统python源码+文档说明+数据库(课程设计)
- 北京航空航天大学操作系统课设+ppt+实验报告
- 基于Vue+Echarts实现风力发电机中传感器的数据展示监控可视化系统+源代码+文档说明(高分课程设计)
- 基于单片机的风力发电机转速控制源码
- 基于C++实现的风力发电气动平衡监测系统+源代码+测量数据(高分课程设计)
- 毕业设计- 基于STM32F103C8T6 单片机,物联网技术的太阳能发电装置+源代码+文档说明+架构图+界面截图
- 基于 LSTM(长短期记忆)(即改进的循环神经网络)预测风力发电厂中风力涡轮机产生的功率+源代码+文档说明
- 基于stm32f103+空心杯电机+oled按键+运动算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功