📄 adm_restore.php
字号:
<?php
/*
adm_restore.php
Version : 1.0.0
Author : Tracemouse (tracemouse@msn.com)
Copyright: http://www.vitci.com
Writed : 2003/08/20
Modified : 2003/12/10
*/
require "./common.php";
$file_name='./adm_restore.php';
$backup_dir='../tempdata/backup';
if(!$importsubmit && !$deletesubmit)
{
$exportlog = array();
if(is_dir($backup_dir))
{
$dir = dir($backup_dir);
while($entry = $dir->read())
{
$entry = $backup_dir."/".$entry;
if (is_file($entry) && strtolower(strrchr($entry, ".")) == ".sql")
{
$filesize = filesize($entry);
$fp = fopen($entry, "r");
$identify = explode(",", base64_decode(preg_replace("/^# Identify:\s*(\w+).*/s", "\\1", fgets($fp, 256))));
fclose ($fp);
$exportlog[$identify[0]] = array(
"version" => $identify[1],
"type" => $identify[2],
"multivol" => $identify[3],
"volume" => $identify[4],
"filename" => $entry,
"size" => $filesize
);
}
}
$dir->close();
}
else
{
gotourl($language['alt_dir_notf']);
}
krsort($exportlog);
reset($exportlog);
// $exportinfo = "";
$filelist = array();
foreach($exportlog as $dateline => $info)
{
$info[dateline] = is_int($dateline) ? gmdate("$dateformat $timeformat", $dateline + $timeoffset * 3600) : "未知";
switch($info[type])
{
case all: $info[type] = $language['all']; break;
case standard: $info[type] = $language['standard']; break;
case majority: $info[type] = $language['majority']; break;
// case mini: $info[type] = "最小"; break;
}
$info[size] = sizecount($info[size]);
$info[multivol] = $info[multivol] ? $language['yes'] : $language['no'];
$info[volume] = $info[multivol] ? $info[volume] : "";
//$info[alert]=($info[version] != strip_tags($version))?" onclick=\"return confirm('导入和当前 Discuz! 版本不一致的数据极有可能产生无法解决的故障,您确定继续吗?');\"":"");
//$exportinfo .= "<tr align=\"center\"><td bgcolor=\"".ALTBG1."\"><input type=\"checkbox\" name=\"delete[]\" value=\"$info[filename]\"></td>\n".
$info['exportinfo']= "<tr class=\"line_1\" align=\"center\"><td><input type=\"checkbox\" name=\"delete[]\" value=\"$info[filename]\"></td>\n".
"<td><a href=\"$info[filename]\">".substr(strrchr($info[filename], "/"), 1)."</a></td>\n".
"<td>$info[version]</td>\n".
"<td>$info[dateline]</td>\n".
"<td>$info[type]</td>\n".
"<td>$info[size]</td>\n".
"<td>$info[multivol]</td>\n".
"<td>$info[volume]</td>\n".
"<td>[<a href=\"$file_name?from=server&datafile_server=$info[filename]&importsubmit=yes\"".
($info['version'] != strip_tags($version) ? " onclick=\"return confirm($language[restore_alert_1]);\"" : "").">$language[into]</a>]</td>\n";
$filelist[]=$info;
}
}
elseif($importsubmit)
{
$readerror = 0;
if($from == "server")
{
$datafile = $datafile_server;
$datafile_size = @filesize($datafile_server);
}
@$fp = fopen($datafile, "r");
if($datafile_size)
{
@flock($fp, 3);
$sqldump = @fread($fp, $datafile_size);
}
else
{
$sqldump = @fread($fp, 99999999);
}
@fclose($fp);
if(!$sqldump)
{
if($autoimport)
{
//updatecache();
gotourl($language['restore_alert_2']);
}
else
{
gotourl($language['restore_alert_3']);
}
}
elseif(!strpos($sqldump, "VITCI ESHOP Data Dump"))
{
gotourl($language['restore_alert_4']);
}
else
{
$identify = explode(',', base64_decode(preg_replace("/^# Identify:\s*(\w+).*/s", "\\1", substr($sqldump,0, 256))));
$dumpinfo = array('multivol' => $identify[3], 'volume' => intval($identify[4]));
$sqlquery = splitsql($sqldump);
unset($sqldump);
foreach($sqlquery as $sql)
{
if(trim($sql) != '')
{
$db->query($sql);
}
}
if($dumpinfo['multivol'])
{
$datafile_next = str_replace("-$dumpinfo[volume].sql", '-'.($dumpinfo['volume'] + 1).'.sql', $datafile_server);
if($dumpinfo['volume'] == 1)
{
gotourl($language['restore_alert_5'],
"$file_name?from=server&datafile_server=$datafile_next&autoimport=yes&importsubmit=yes",
'form');
}
elseif($autoimport)
{
gotourl($language['backup_file']." #$dumpinfo[volume] ".$language['restore_alert_9'], "$file_name?action=import&from=server&datafile_server=$datafile_next&autoimport=yes&importsubmit=yes");
}
else
{
//updatecache();
gotourl($language['restore_alert_6']);
}
}
else
{
//updatecache();
gotourl($language['restore_alert_6']);
}
}
}
elseif($deletesubmit)
{
if(is_array($delete))
{
foreach($delete as $filename)
{
@unlink($filename);
}
gotourl($language['restore_alert_7']);
}
else
{
gotourl($language['restore_alert_8']);
}
}
include template('restore');
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -