$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('
', $aErrors);
exit;
}
$cc = '\r\n';
echo '';
echo <<
EOF;
?>
0
0
跳至
[1]
[全屏预览]
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 单元测试与代码质量保障
本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。
8
2026.01.16
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程









