📄 conv.cgi
字号:
#!/usr/bin/perl
###########################################################
# LB5000(ib2000) 用户所有资料转换器,LB5000 II 用户的福音!
# 程序编制: 山鹰糊 webmaster@cgier.com
# 版权所有: CGI 编程者之家 http://www.CGIer.com
###########################################################
eval {
($0 =~ m,(.*)/[^/]+,) and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "lb.lib.pl";
require "data/boardinfo.cgi";
};
if ($@) {
print header(-charset=>gb2312); print start_html(-title=>"LB5000 出错!");
print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
print end_html; exit;
}
$|++; # Unbuffer the output
$lbdir = $ikondir if ($ikondir ne "");
print ("Content-type: text/html\n\n");
if ((-e "${lbdir}data/mpic.cgi")||(-e "${lbdir}data/template.cgi")||(-e "${lbdir}data/counter.cgi")) {
print "你论坛数据已经转换过了,请不要多次运行 conv.cgi 文件,谢谢!\n\n";
print "<BR><BR><B><a href=conv1.cgi>点击这里进行下一步的升级 ----〉〉〉</a></b><BR><BR><BR><BR>";
print "程序编制:<a href=\"mailto:webmaster\@cgier.com\">山鹰(糊)</a><BR>";
print "版权所有:<a href=\"http://www.cgier.com/\">CGI 编程者之家</a>";
exit;
}
$userhead= "$lbdir" . "data";
unlink ("$userhead/onlinedata.cgi");
unlink ("$userhead/privacy.dat");
unlink ("$userhead/hacklog.cgi");
rename ("$userhead/template.dat", "$userhead/template.cgi");
rename ("$userhead/counter.dat", "$userhead/counter.cgi");
$filetomake = "$lbdir" . "data/counter.cgi";
open(FILE,"$filetomake");
$count = <FILE>;
close(FILE);
if ($count =~ /\|/) {
($count1,$count2,$onlinemax) = split(/\|/, $count);
$nono111=time;
open(FILE, ">$filetomake");
print FILE "$count1\t$count2\t$onlinemax\t$nono111\t";
close(FILE);
print "论坛统计转换完成。<BR><BR>";
}
$filetomake = "$lbdir" . "data/recentpost.cgi";
open(FILE,"$filetomake");
@count = <FILE>;
close(FILE);
undef @totledata;
foreach $data (@count) {
@okok = split(/\|/,$data);
$okokok = join("\t",@okok);
push(@totledata, $okokok);
}
open(FILE, ">$filetomake");
foreach $line (@totledata) {
chomp $line;
$line =~ s/\n//isg;
print FILE "$line\n" if ($line ne "");
}
close(FILE);
$filetomake = "$lbdir" . "data/shareforums.cgi";
open(FILE,"$filetomake");
@count = <FILE>;
close(FILE);
undef @totledata;
foreach $data (@count) {
@okok = split(/\|/,$data);
$okokok = join("\t",@okok);
push(@totledata, $okokok);
}
open(FILE, ">$filetomake");
foreach $line (@totledata) {
chomp $line;
$line =~ s/\n//isg;
print FILE "$line\n" if ($line ne "");
}
close(FILE);
$userhead= "$lbdir" . "data";
$userdir=$userhead;
opendir (MEMBERDIR, "$userdir");
@stats = readdir(MEMBERDIR);
closedir (MEMBERDIR);
@stats = grep(/^news/, @stats);
$totaluserdata=$#stats+1;
for ($i=0;$i<$totaluserdata;$i++) {
$name = @stats[$i];
$filesname="$userhead/$name";
open(FILE,"$filesname");
@array=<FILE>;
close(FILE);
undef @totledata;
foreach $data (@array) {
@okok = split(/\|/,$data);
$okokok = join("\t",@okok);
push(@totledata, $okokok);
}
open(FILE, ">$filesname");
foreach $line (@totledata) {
chomp $line;
$line =~ s/\n//isg;
print FILE "$line\n" if ($line ne "");
}
close(FILE);
}
print "公告转换成功。<BR><BR>";
$userhead= "$lbdir" . "members";
$userdir=$userhead;
opendir (MEMBERDIR, "$userdir");
@stats = readdir(MEMBERDIR);
closedir (MEMBERDIR);
@stats = grep(/cgi$/, @stats);
$totaluserdata=$#stats+1;
$a =0;
for ($i=0;$i<$totaluserdata;$i++) {
$name = @stats[$i];
$filesname="$userhead/$name";
open(FILE,"$filesname");
$array=<FILE>;
close(FILE);
next if ($array !~ /\|/);
@okok = split(/\|/,$array);
$okokok = join("\t",@okok);
chomp $okokok;
$okokok .= "\t";
unlink ("$filesname");
$name =~ tr/A-Z/a-z/;
$okokok =~ s/\n//isg;
open(FILE,">$userhead/$name");
print FILE "$okokok\n";
close(FILE);
$a++;
}
opendir (DIRS, "$lbdir");
my @files2 = readdir(DIRS);
closedir (DIRS);
my @memdir = grep(/^members/, @files2);
$memdir=@memdir;
if ($memdir eq 0) {
@memdir = grep(/^MEMBERS/, @files2);
rename("${lbdir}MEMBERS","${lbdir}members");
}
if ($memdir eq 0) {
@memdir = grep(/^Members/, @files2);
rename("${lbdir}Members","${lbdir}members");
}
$memdir = $memdir[0];
if ($memdir eq "members") {
srand;
$x = rand;
$x = int($x * 100000);
$x =sprintf("%06d",$x);
rename("${lbdir}members","${lbdir}members$x");
}
print "用户库转换成功,共转换 $a 个用户,总共 $totaluserdata 个注册用户。<BR><BR>";
$userhead= "$lbdir" . "messages";
$userdir=$userhead;
opendir (MEMBERDIR, "$userdir");
@stats = readdir(MEMBERDIR);
closedir (MEMBERDIR);
@stats = grep(/cgi$/, @stats);
$totaluserdata=$#stats+1;
for ($i=0;$i<$totaluserdata;$i++) {
$name = @stats[$i];
$filesname="$userhead/$name";
open(FILE,"$filesname");
@array=<FILE>;
close(FILE);
undef @totledata;
foreach $data (@array) {
@okok = split(/\|/,$data);
$okokok = join("\t",@okok);
push(@totledata, $okokok);
}
open(FILE, ">$filesname");
foreach $line (@totledata) {
chomp $line;
$line =~ s/\n//isg;
print FILE "$line\n" if ($line ne "");
}
close(FILE);
}
print "用户短消息数据库转换成功。<BR><BR>";
$filetoopen = "$lbdir" . "data/allforums.cgi";
open(FILE, "$filetoopen");
@files = <FILE>;
close(FILE);
undef @totleforums;
foreach $data (@files) {
@okok = split(/\|/,$data);
$okokok = join("\t",@okok);
push(@totleforums, $okokok);
}
open(FILE, ">$filetoopen");
foreach $line (@totleforums) {
chomp $line;
$line =~ s/\n//isg;
print FILE "$line\n" if ($line ne "");
}
close(FILE);
$filetoopen = "$lbdir" . "data/allforums.cgi";
open(FILE, "$filetoopen");
@files = <FILE>;
close(FILE);
$check = @files;
foreach (@files) {
chomp($_);
($tempno, $trash) = split(/\t/,$_);
unlink ("${lbdir}forum$tempno/list.cgi");
$dirtoopen = "$lbdir" . "forum$tempno";
opendir (DIR, "$dirtoopen");
@dirdata = readdir(DIR);
closedir (DIR);
@malfiles = grep(/mal$/,@dirdata);
foreach (@malfiles) {
unlink ("${lbdir}forum$tempno/$_");
}
@filefiles = grep(/file$/,@dirdata);
foreach (@filefiles) {
rename ("${lbdir}forum$tempno/$_", "${lbdir}forum$tempno/$_.pl");
}
@thdfiles = grep(/thd$/,@dirdata);
foreach (@thdfiles) {
$filesname="${lbdir}forum$tempno/$_";
open(FILE,"$filesname");
@array=<FILE>;
close(FILE);
undef @totledata;
foreach $data (@array) {
@okok = split(/\|/,$data);
$okokok = join("\t",@okok);
push(@totledata, $okokok);
}
unlink ("$filesname");
open(FILE, ">$filesname.cgi");
foreach $line (@totledata) {
chomp $line;
$line =~ s/\n//isg;
print FILE "$line\n" if ($line ne "");
}
close(FILE);
}
@plfiles = grep(/pl$/, @dirdata);
foreach (@plfiles) {
$filesname="${lbdir}forum$tempno/$_";
open(FILE,"$filesname");
$array=<FILE>;
close(FILE);
next if ($array !~ /\|/);
@okok = split(/\|/,$array);
$okokok = join("\t",@okok);
chomp $okokok;
$okokok .= "\t";
$okokok =~ s/\n//isg;
open(FILE,">$filesname");
print FILE "$okokok\n";
close(FILE);
}
rebuildLIST(-Forum=>"$tempno");
print "forum$tempno 论坛转换完成。<BR><BR>";
}
mkdir ("${imagesdir}midi", 0777);
mkdir ("${imagesdir}usr", 0777);
mkdir ("${imagesdir}usravatars", 0777);
mkdir ("${lbdir}backup", 0777);
mkdir ("${lbdir}memfriend", 0777);
mkdir ("${lbdir}memfav", 0777);
print "<BR><BR><B><a href=conv1.cgi>点击这里进行下一步的升级 ----〉〉〉</a></b><BR><BR><BR><BR>";
print "程序编制:<a href=\"mailto:webmaster\@cgier.com\">山鹰(糊)</a><BR>";
print "版权所有:<a href=\"http://www.cgier.com/\">CGI 编程者之家</a>";
exit;
# 程序完。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -