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

📄 bakup.php

📁 一个可以实时查看股票行情的小程序,真是一个好程序哦,直得大家
💻 PHP
字号:
<?php
!function_exists('adminmsg') && exit('Forbidden');

@set_time_limit(0);
if(!$a_type)$a_type='bakout';
$basename="admin.php?adminjob=bakup&a_type=$a_type";
if($a_type=='bakout'){
	if(empty($action)){
		$tabledb=array(
			'pw_actions',
			'pw_smiles',
			'pw_adminset',
			'pw_announce',
			'pw_bbsinfo',
			'pw_config',
			'pw_hack',
			'pw_ipstates',
			'pw_schcache',
			'pw_sharelinks',
			'pw_styles',
			'pw_usergroups',
			'pw_wordfb',
			'pw_credits',
			'pw_forums',
			'pw_favors',
			'pw_banuser',
			'pw_membercredit',
			'pw_memberinfo',
			'pw_polls',
			'pw_attachs',
			'pw_ks',
			'pw_keyword',
			'pw_report',
			'pw_msg',
			'pw_threads',
			'pw_tmsgs',
			'pw_members',
			'pw_memberdata',
			'pw_posts',
		);
		include PrintEot('bakup');exit;
	} else{
		
		$bak="#\n# PHPwind bakfile\n# Version:".$wind_version."\n# Time: ".date('Y-m-d H:i')."\n# Type: \n# PHPwind: http://www.phpwind.net\n# --------------------------------------------------------\n\n\n";
		$db->query("SET SQL_QUOTE_SHOW_CREATE = 0");
		
		$start = intval($start);
		!$tabledb && !$tablesel && adminmsg('operate_error');
		!$tabledb && $tabledb=explode("|",$tablesel);
		!$step && $sizelimit/=2;
		$bakupdata=bakupdata($tabledb,$start);
		if(!$step){
			!$tabledb && adminmsg('operate_error');
			$tablesel=implode("|",$tabledb);
			$step=1;
			$start=0;
			$pre='pw_'.date('md').'_'.num_rand(10).'_';
			$bakuptable=bakuptable($tabledb);
		}
		$f_num=ceil($step/2);
		$filename=$pre.$f_num.'.sql';
		$step++;
		$writedata=$bakuptable ? $bakuptable.$bakupdata : $bakupdata;

		$t_name=$tabledb[$tableid-1];  $c_n=$startfrom;
		if($stop==1){
			$files=$step-1;
			trim($writedata) && writeover('data/'.$filename,$bak.$writedata,'ab');
			adminmsg('bakup_step',"$basename&action=$action&pre=$pre&start=$startfrom&tableid=$tableid&sizelimit=$sizelimit&step=$step&aaa=$aaa&tablesel=$tablesel&rows=$rows",2);
		} else{
			trim($writedata) && writeover('data/'.$filename,$bak.$writedata,'ab');
			
			if($step>1){
				for($i=1;$i<=$f_num;$i++){
					$bakfile.='<a href="data/'.$pre.$i.'.sql">'.$pre.$i.'.sql</a><br>';
				}
			}
			adminmsg('bakup_out');
		}
	}
} elseif($a_type=='bakin'){
	$strlen=19;
	$handle=opendir('data');
	while(false!== ($file = readdir($handle))){
		if(strpos($file,'pw_')!==false && eregi("\.sql$",$file)){
			$filearray[]=$file;
			if($action=='bakin'){
				$filename && $bakinfileinfo=substr($filename,0,$strlen);
				if(strpos($file,$bakinfileinfo)!==false){
					$bakinfile[]=$file;
				}
			}
		}
	}
	if(empty($action)){
		$filedb=array();
		$handle=opendir('data');
		if(is_array($filearray)){
			foreach($filearray as $file){
				$fp=fopen("data/$file",'rb');
				$bakinfo=fread($fp,200);
				fclose($fp);
				$bakdetail=explode("\n",$bakinfo);
				$bakfile['name']=$file;
				$bakfile['version']=substr($bakdetail[2],10);
				$bakfile['time']=substr($bakdetail[3],8);
				$bakfile['num']=substr($file,$strlen,strrpos($file,'.')-$strlen);
				$filedb[]=$bakfile;
			}
		}
		include PrintEot('bakup');exit;
	} elseif($action=='bakin'){
		$count=count($bakinfile);
		if(!$step)$step=1;
		for($i=$step;$i<=$count;$i++){
			$sql=readover('data/'.$bakinfileinfo.$i.'.sql');
			bakindata($sql);
			$step++;
			if($count>1 && $step<=$count){
				adminmsg('bakup_in',"$basename&action=bakin&step=$step&filename=$filename",2);
			}
		}
		updatecache();
		adminmsg('operate_success');
	} elseif($action=='del'){
		if(!$delfile)adminmsg('operate_error');
		foreach($delfile as $value){
			unlink("data/$value");
		}
		adminmsg('operate_success');
	}
}

function num_rand($lenth){
	mt_srand((double)microtime() * 1000000);
	for($i=0;$i<$lenth;$i++){
		$randval.= mt_rand(0,9);
	}
	$randval=substr(md5($randval),mt_rand(0,32-$lenth),$lenth);
	return $randval;
}

function bakupdata($tabledb,$start=0){
	global $db,$sizelimit,$tableid,$startfrom,$stop,$rows;
	$tableid=$tableid?$tableid-1:0;
	$stop=0;
	$t_count=count($tabledb);
	for($i=$tableid;$i<$t_count;$i++){
		$ts=$db->get_one("SHOW TABLE STATUS LIKE '$tabledb[$i]'");
		$rows=$ts['Rows'];

		$limitadd="LIMIT $start,100000";
		$query = $db->query("SELECT * FROM $tabledb[$i] $limitadd");
		$num_F = mysql_num_fields($query);

		while ($datadb = mysql_fetch_row($query)){
			$start++;
			$bakupdata .= "INSERT INTO $tabledb[$i] VALUES("."'".mysql_escape_string($datadb[0])."'";
			$tempdb='';
			for($j=1;$j<$num_F;$j++){
				$tempdb.=",'".mysql_escape_string($datadb[$j])."'";
			}
			$bakupdata .=$tempdb. ");\n";
			if($sizelimit && strlen($bakupdata)>$sizelimit*1000){
				break;
			}
		}
		$db->free_result($query);

		if($start>=$rows){
			$start=0;
			$rows=0;
		}

		$bakupdata .="\n";
		if($sizelimit && strlen($bakupdata)>$sizelimit*1000){
			$start==0 && $i++;
			$stop=1;
			break;
		}
		$start=0;
	}
	if($stop==1){
		$i++;
		$tableid=$i;
		$startfrom=$start;
		$start=0;
	}
	return $bakupdata;
}

function bakuptable($tabledb){
	global $db;
	foreach($tabledb as $table){
		$creattable.= "DROP TABLE IF EXISTS $table;\n";
		$CreatTable = $db->get_one("SHOW CREATE TABLE $table");
		$CreatTable['Create Table']=str_replace($CreatTable['Table'],$table,$CreatTable['Create Table']);
		$creattable.=$CreatTable['Create Table'].";\n\n";
	}
	return $creattable;
}

function bakindata($sql) {
	global $db,$installinfo;
	$sql=str_replace("\r",'\n',$sql);
	$sqlarray=explode(";\n",$sql);
	foreach($sqlarray as $query){
		$query=trim($query);
		if($query[0]=='#'){
			$queryy=explode("\n",$query);
			$query='';
			foreach($queryy as $value){
				if($value[0]!='#'){
					$query.=$value;
				}
			}
		}
		if($query){
			$query=trim(str_replace("\n",'',$query));
			$db->query($query);
		}
	}
}

⌨️ 快捷键说明

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