⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vbb2lb5000.cgi

📁 一个linux论坛
💻 CGI
字号:
#!/usr/bin/perl
###############################################
#  vBB -> LB5000 用户转换 1.0b
#
#  版权所有:雷傲工作室 www.leoboard.com
#
#  程序制作 :   花无缺 (Ifairy Han) 
#              webmaster@leothreads.com
#
#  上传到你的服务器,要支持DBI::MYSQL哦 
#  如果不行,你在本地安装PERL和DBI驱动 
#  然后在本地转换好 
#  由于vbb密码使用了md5数据模式转换后用户原密码无效
#  需要重新提取密码
###############################################

use strict;
use DBI;
use CGI qw(:standard);

#host
my $host="localhost";
#database user
my $user="root";
my $password="";
# vBulletin database name and password 
my $vbName = "vbulletin";
my $lb5000member = "/path/to/LB5000 members dir/"; # 请输入 LB5000 用户资料所在的目录的绝对路径,最后不要遗漏 / ,注意设置 777 属性 。

################# 以下部分无需修改
my $ending = ".cgi"; 		# LB5000 的用户数据文件后缀为 .cgi
my $dbh=DBI->connect("DBI:mysql:$vbName:$host",$user,$password) or die $!;

# Print HTTP header
print "Content-Type: text/html\n\n";

my $startTime = time();

my $totalMember = 0;
my $totalCategory = 0;
my $totalBoard = 0;
my $totalTopic = 0;
my $totalPost = 0;

print
	"<HTML>\n",
	"<HEAD>\n",
	"<TITLE>Importing database from vBulletin to LB5000</TITLE>\n",
	"<meta HTTP-EQUIV=Content-Type content=\"text/html; charset=gb2312\">\n",
	"<STYLE TYPE='text/css'>\n",
	"pre { font-family: verdana; font-size: 10pt; color: #FFFFFF}\n",
	"</style>\n",
	"</head>\n",
	"<body bgcolor=#000000>\n",
	"<pre>\n\n",
	"Importing Database ($startTime)\n",
	"-----------------------------------------------------------\n\n";
print "Importing member ... \n";

my $query = "SELECT * FROM $vbName.user";
my $sth=$dbh->prepare("$query") or die $!;
my $vbMem = $sth->fetchall_arrayref({});
$sth->finish();

# Import members
for my $member (@$vbMem) {
	my $userId = $member->{'userid'};
	my $admin = ($member->{'usergroupid'} == 6) ? 1 : 0;
	my $userName = quote($member->{'username'});
	my $homepage = ($member->{'homepage'} eq "http://") ? "" : $member->{'homepage'};
	my $icq = ($member->{'icq'} =~ /\d+/) ? $member->{'icq'} : 0;
	my $hideEmail = $member->{'showemail'} ? "no" : "yes";
	my $notify = $member->{'emailnotification'} ? 1 : 0;
	my $tempLogin = $member->{'cookieuser'} ? 0 : 1;
	my $regTime = $member->{'joindate'};
	my $lastOnTime = $member->{'lastvisit'};
	my $lastReadTime = $member->{'lastactivity'};
	my $postNum = $member->{'posts'};
	my $hidden = $member->{'invisible'} ? 1 : 0;
	my @xxx = split(/\n/, $member->{'biography'});
	my $location = "";
	my $occupation = "";
	my $hobbies = "";
	foreach my $x (@xxx) {
		if ($x =~ /(^Occupation: )(.+)/) {
			$occupation = $2;
		}
		elsif ($x =~ /(^Location: )(.+)/) {
			$location = $2;
		}
		elsif ($x =~ /(^Interests: )(.+)/) {
			$hobbies = $2;
		}
	}
	$location = quote($location);
	$occupation = quote($occupation);
	$hobbies = quote($hobbies);

	my $signature = $member->{'signature'};
	$signature =~ s!\r!!g;
	$signature =~ s!\n{3,}!\n\n!g;
	$signature =~ s!^\n+!!g;
	$signature =~ s!\n+$!!g;
	$signature =~ s!\n! <br> !g;
	$signature = quote($signature);
	my	$realname = $userName;
	  $userName =~ s/ /_/gi;
      $userName =~ tr/A-Z/a-z/;
      $userName =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\=\+\\\[\]\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
my     $filetocheck = "$lb5000member" . "$userName$ending";
      if (-e $filetocheck) { print "用户 $realname 已经存在,不能转换!"; next; }
	  
	  open(IBMEMBER,">$lb5000member$userName$ending") || die ("打开 LB5000 的用户数据存放目录错误,请检查路径!");
      print IBMEMBER "$realname\t$member->{'password'}\tMember\tme\t$postNum\t$member->{'email'}\t$hideEmail\txxx.xxx.xxx.xxx\t$homepage\t\t$icq\t$location\t\t980364618\tNot Posted\t$signature\t\t\t\t\t\t\t\n";
      close(IBMEMBER);
      print "用户 $realname 已经成功转换成 LB5000 II 用户了!<BR><BR>";

	$totalMember++;
}

print "done!\n\n";

print 
	"\n\n--------------------------------------------------\n",
	"Member: $totalMember\n",
	"--------------------------------------------------\n",
	"</pre>\n",
	"</body>\n",
	"</html>\n";

# That's all
$dbh->disconnect() or dbError();

exit;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -