首頁 php教程 PHP源码 PHP写的多服务器文件同步的程序

PHP写的多服务器文件同步的程序

Jul 06, 2016 pm 01:28 PM

跳至 [1] [全屏预览]
<?php
header('Content-type:text/html;charset=utf-8');
//文件名称:PHP文件多服务器同步工具
//文件作用:本文件所在服务器为主服务器,其它文件所在服务器可作分流或者备份。本文件需要jQuery库。你也可以外链别人的
//最后修改时间:2016-06-30
//BY:strwei

if(!empty($_POST['files'])) sync();

function sync(){
	$aFiles 	 = explode("\n", $_POST['files']);
//var_dump($aFiles);exit;
	foreach($aFiles as $k => $v){
		if(strlen($v) <= 5) unset($aFiles[$k]);
	}
	array_filter($aFiles);
	if(empty($aFiles)) {
		echo '没有文件'; exit;
	}
	$aFTPServers = array(
						'server1' => array('strwei.com','FTP用户名','FTP密码', '打开FTP进去时的默认目录'),//ftp地址、用户名,密码、FTP打开此站点时的默认目录
						//'server2' => array('yy.9.je','FTP用户名','FTP密码','打开FTP进去时的默认目录'),
	);
	$aAbortFile  = array('robots.txt');
	$aErrors  	 = array();
	$iError		 = count($aErrors);
	$aSuc		 = array();
	foreach($aFTPServers as  $ftp) {
		$conn    = ftp_connect($ftp[0]);
		if(empty($conn)){
			$iError = $iError + 1;
			array_push($aErrors, $iError . "、服务器 $ftp 无法连接");
			continue;
		}
		$login = ftp_login($conn, $ftp[1], $ftp[2]);
		if(empty($login)){
			$iError = $iError + 1;
			array_push($aErrors, $iError . "、服务器 $ftp[0] 无法登录");
			continue;
		}

		$ftp_root = '';
		if(!empty($ftp[3])) $ftp_root = ftp_chdir($conn, $ftp[3]);
		$ftp_root = ftp_pwd($conn);
		if(substr($ftp_root, -1) == '/') $ftp_root = substr($ftp_root, 0, -1);
		foreach($aFiles as $k => $v){
			$s  = basename($v);
			if(in_array($s, $aAbortFile)) {
				$iError = $iError + 1;
				array_push($aErrors, $iError . "、文件 $v 不允许同步");
				continue;
			}
			if(!file_exists('.'.$v)) {
				$iError = $iError + 1;
				array_push($aErrors, $iError . "、文件 $v 不存在");
				continue;
			}
			$upload = ftp_put($conn, $ftp_root . $v, '.' . $v, FTP_BINARY);
			if(empty($upload)){
				$iError = $iError + 1;
				array_push($aErrors, $iError . "、文件 $v 上传失败");
				continue;
			}
			array_push($aSuc, $v);
		}
	}
	if(empty($aErrors)) {
		echo '上传成功: ' . implode('、', $aSuc);
		exit;
	}
	echo implode('<br>', $aErrors);
	exit;
}

$cc = '\r\n';
echo '<script src="//cdn.bootcss.com/jquery/3.0.0/jquery.js"></script>';
echo <<<EOF
请输入你要同步的文件名(包括它的路径),例如:inoutcome_final.zip、/default.php、/index.php、/inoutcome_final.sqlite等等,每行输入一个文件名,可回车输入多个<br><br>
<textarea style="width:450px; height:85px; border:1px #000 solid;" id="id_file" onkeyup="this.value=this.value.replace(/ /g,'');"></textarea><br>
<button id="btn_submit" onclick="return submit_sync();">同步以上文件</button> <br><span id="show_sync" style="color:#f00;"></span>

<script>
function submit_sync(){
	$("#btn_submit").hide();
	var sFiles  = $("#id_file").val();
	var aFiles  = sFiles.split(/$cc/);
	if(aFiles.length <= 0  || aFiles[0].length <= 5) {
		alert("请手工写入要同步的文件清单");
		$("#btn_submit").show("slow");
		return false;
	}
	$.post("?", {"files":sFiles}, function(v){
		$("#show_sync").text(v);
		if(v.indexOf("上传成功") != -1) $("#id_file").val('');
		$("#btn_submit").show(5000);
	})
	return true;
}
</script>

EOF;
?>
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)