指定SVN版本FTP上传更新文件(PHP版)

菜鸟写的php小脚本,apache执行需指定用户权限.
将指定svn版本号(GET参数s)更新的文件上传到FTP上


<?php
$ftpserver = 'www.sitename.com';//ftp server
$ftpuser = 'test';//ftp user name
$ftppassword = 'test';//ftp user password
$svnrepository = "d:\web";//svn repository directory
$svnbinpath = "";//svn bin file directory


if($v1 = $_GET['s'])
{//版本号
$r = array();//执行外面svn命令返回的信息数组
$f = array();//匹配文件
$fa = array();//所有需上传的匹配文件
if($v2 = $_GET['e'])
{//至版本号(从起始版本号至版本号所有文件)
exec($svnbinpath." svn log $svnrepository -r {$v1}:{$v2} -q -v",$r);
}
else
{//单版本号
exec($svnbinpath." svn log $svnrepository -r {$v1} -q -v",$r);
}

foreach($r as $value)
{
if(preg_match("/^[ ]*[AM]{1} (\/.+)$/i",$value,$f))
{//符合文件更新规则的文件名放入上传数组
$fa[] = $f[1];
}
}
echo "revision: $v1 ".(($v2)?" - $v2":'')." need upload files:\n<br>";
foreach($fa as $value)
{
echo $svnrepository.$value."\n<br>";
}

if($fa)
{
$conn_id = ftp_connect($ftpserver);
$login_result = ftp_login($conn_id,$ftpuser,$ftppassword);
if ((!$conn_id) || (!$login_result))
{
echo "FTP connection has failed! :(\n<br>";
exit();
}
else
{
echo "\n<br>Connected to $ftpserver ftp\n<br>";
}

foreach($fa as $value)
{
$upload = ftp_put($conn_id, str_replace('\\','/',$value), $svnrepository.$value, FTP_BINARY);
if($upload)
{
echo "upload $value succeed :)\n<br>";
}
else
{
echo "upload $value failed :(\n<br>";
}
}
echo "upload completed";
ftp_close($conn_id);
}
}
else
{//无参数提示
echo '请输入版本号参数s,如需连续多个版本则加上参数e';
}
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值