`
zyf
  • 浏览: 2592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

    博客分类:
  • 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';
}
?>
分享到:
评论

相关推荐

    SVN Windows 下 利用hook 自动发布到 web服务器

    - **FTP命令文件生成**:通过一系列的`@echo`命令生成FTP命令文件`ftpcmd.txt`,其中包含了登录FTP服务器、切换目录、上传文件等命令。 - **执行FTP命令**:最终使用`@ftp-n&lt;ftpcmd.txt&gt;&gt;ftplog.txt`命令执行上述FTP...

    分别用shell、dos、perl实现对SVN版本库的增量备份

    3. **文件传输**:使用Perl的网络功能如`Net::FTP`模块来上传备份文件。 4. **导入操作**:编写远程执行导入脚本的功能。 Perl脚本的关键在于如何正确调用系统命令以及处理文件传输。例如,可以通过`system`函数...

    SVN使用教程(简单明了,很适合初学者)

    1. 安装 SVN 客户端:教程推荐使用 TortoiseSVN,可以从指定的 FTP 地址下载安装。 2. 读操作: - 项毓毅和管理组可以直接检出"质量管理部"目录。 - 其他员工需要分别检出"部门财富库"和"产品线管理"子目录,因为...

    服务器安装mysql+apache2+php+vsftp+svn

    启动服务后,用户可以通过FTP协议上传和下载文件。 **SVN**: Subversion(SVN)是一个版本控制系统,用于跟踪文件和目录的变更。安装SVN需要安装服务器和客户端软件。配置SVN仓库,设置用户访问权限,并确保服务器...

    ftp同步教程

    通过SVN,你可以管理文件的历史版本,同时与远程FTP服务器进行协同工作。 3. **客服端和服务端文档**: "客服端.doc"和"服务端.doc"很可能是关于FTP客户端和服务器的使用指南。FTP客户端是你在本地计算机上使用的...

    (总结完整版)Ant从SVNCVS下载编译打包部署到本地远程服务器(FTP上传).pdf

    本文档总结了如何利用Ant与版本控制系统(如SVN、CVS)集成,实现代码的自动下载,再通过FTP上传至远程服务器并启动应用的过程。 首先,我们需要确保具备相应的环境,如JDK1.7、TOMCAT6.0和ANT1.8.2,以及SVN、CVS...

    更新服务器文件到本地

    标题“更新服务器文件到本地”涉及的是在IT领域中常见的版本控制或文件同步操作,尤其在软件开发过程中,经常需要将远程服务器上的文件更新到本地工作环境中。这可能包括代码库、配置文件或其他项目资源。这里提到的...

    版本控制工具-更改或新建文件识别

    FTP更改上传则是在文件更新后,通过FTP协议将这些改动上传至远程服务器,确保服务器上的文件与本地保持同步,这对于网站维护和更新尤其有用。 程序的主体是一个名为"FileUpdate.exe"的可执行文件,这通常是一个...

    简单易用的FTP服务器程序

    用户可以上传代码到FTP服务器,然后通过版本控制系统管理文件的历史版本。 总结来说,"简单易用的FTP服务器程序"是帮助用户轻松搭建和管理FTP服务的工具,具备用户账户管理、权限设置、安全加密等功能,适用于各种...

    AIX系统安装svn

    - 使用FTP工具将下载好的GCC包上传至AIX系统的指定目录,例如`/usr/opt/freeware/src/packages/SOURCES`。 3. **安装GCC包**: - 登录至AIX系统,并切换至root用户。 - 进入到GCC包所在目录:`# cd /usr/opt/...

    自动搜索bin文件3.3 可用

    5. **网络搜索**:如果.bin文件需要从网络上获取,自动化工具可能集成HTTP或FTP客户端功能,用于下载指定的文件。此外,也可能涉及网页抓取和解析,以从网页中提取.bin文件的链接。 6. **版本控制**:标题中的"3.3...

    PHP PC项目发布流程.docx

    2. **版本控制集成**:将新代码或改动添加到本地SVN仓库,通常通过`svn add`命令添加新文件,`svn commit`命令提交更改,同时附上有意义的提交注释。 3. **通知发布人员**:开发者完成提交后,需通知发布人员,告知...

    基于myeclipse6.0的资源 上传和下载的视频

    这些资源可以通过版本控制系统(如SVN或Git)进行版本管理和协同编辑。上传和下载则涉及到远程服务器的交互,这通常用于将本地开发的资源发布到测试或生产环境中,或者从服务器获取最新的代码。 "上传"操作是指将...

    Msbuild,自动构建

    在本文中,我们将深入探讨如何利用Msbuild、MSBuild Extension Pack March 2014插件和自定义任务来实现自动化构建流程,包括源码获取、项目编译、部署到IIS以及通过FTP上传。 **MSBuild Extension Pack March 2014*...

    asp打包工具

    2. **便于版本控制**:打包后的文件可以视为一个整体,方便进行版本控制,例如使用Git或SVN等工具进行版本管理,使得团队协作更加顺畅。 3. **保护源代码**:打包的文件可以对源代码进行一定程度的加密,防止在上传...

    Jenkins1.6+文档

    至于Jenkins与FTP的集成,这通常用于将构建结果上传到FTP服务器。Jenkins提供了FTP插件,配置好FTP服务器的连接信息后,可以在构建步骤中添加发布到FTP的步骤。这样,每次成功构建后,新的应用程序版本就能自动部署...

    Git 使用方法.docx

    可以从指定FTP路径获取相应版本的安装程序,按照默认配置安装。 3. Git 通用操作: - 登录远程服务器:使用提供的URL,推荐使用Chrome浏览器,输入用户名和密码(默认是拼音名字)。 - 修改个人信息:登录后,...

    Ant安装编译操作手册

    - **FTP发布**: 通过FTP协议上传打包好的应用程序至目标服务器。 - **E-mail发布**: 将应用程序打包成压缩文件并通过电子邮件发送给指定用户。 - **SSH/SCP安全发布**: 利用SSH/SCP协议安全地传输文件到远程...

Global site tag (gtag.js) - Google Analytics