`
hudeyong926
  • 浏览: 2016407 次
  • 来自: 武汉
社区版块
存档分类
最新评论

提取ftp上传文件与服务器文件对比的更新

阅读更多

将winscp上传的更新全部提取到输出目录,可以打包上传的线上

start.bat

@echo off
cd /d "F:\newproject\start"

php -f "p.php"
@pause

 p.php

<?php
/**
 * 工具文件
 * 目的在于递归比较两个文件夹
 * @param string $dir1          路径1,是标准,是有修改过的新项目
 * @param string $dir2			路径2,服务器的文件夹
 *
 */

//输出目录
$out_dir = '/data/webroot/outdir/';

function createFolder($path) {
	if (!file_exists($path)) {
		createFolder(dirname($path));
		mkdir($path, 0777);
	}
}

function loopdir ($dir1, $dir2) {
	$files = scandir($dir1);
	
	foreach ($files as $key => $file) {
		if ($file == '.' || $file == '..' || $file == '.svn') continue;
		
		if (is_dir($dir1.'/'.$file)) {
			loopdir($dir1.'/'.$file, $dir2.'/'.$file, $dir1.'/'.$file);
		}
		else {
			if (!file_exists($dir2.'/'.$file)) {
				if (!is_dir('/data/webroot/outdir'.$dir1)) {
					createFolder('/data/webroot/outdir'.$dir1);
				}
				
				copy($dir1.'/'.$file, '/data/webroot/outdir'.$dir1.'/'.$file);
			}
			else {
				if((md5_file($dir1.'/'.$file) != md5_file($dir2.'/'.$file)) || (sha1_file($dir1.'/'.$file) != sha1_file($dir2.'/'.$file))) {
					if (!is_dir('/data/webroot/outdir'.$dir1)) {
						createFolder('/data/webroot/outdir'.$dir1);
					}
					
					copy($dir1.'/'.$file, '/data/webroot/outdir'.$dir1.'/'.$file);
				}
			}
		}
		
	}
}

/**
* 示例
* 项目修改完后的文件放入/data/webroot/basic目录
* 已经发布的项目/data/webroot/www(dever,login)
* 和参数1保持一致
*
**/
loopdir('/data/webroot/basic', '/data/webroot/www');

 

 
分享到:
评论

相关推荐

    PilotEdit.13.8.0.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit...

    PilotEdit 15.5.0 Multilingual x32x64.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit可以...

    PilotEdit.15.4.0.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit可以...

    PilotEdit 15.3.0 (x64) Multilingual.rar

    它提供了可自定义的语法和关键字高亮,高级搜索和替换操作,自动文本编码,256位AES加密/解密,以及一个内置的FTP客户端,您可以打开,编辑和从FTP服务器直接上传文件到/。 除了标准的文本编辑功能,PilotEdit可以...

    java源码包3

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    JAVA上百实例源码以及开源项目

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。... //得到服务器目录与文件列表输入流  StringBuffer info=new StringBuffer(); /...

    Linux指令一周通 (技术图书大系).azw3

    1.61 ncftpput指令:上传文件 1.62 od指令:输出文件内容 1.63 paste指令:合并文件的列 1.64 patch指令:修补文件 1.65 rcp指令:远程复制文件或目录 1.66 rhmask指令:产生加密文件 1.67 rm指令:删除文件或目录 ...

    java源码包2

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    java源码包4

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 ... //得到服务器目录与文件列表输入流  StringBuffer info=new ...

    PHP程序开发范例宝典III

    术、SQL查询相关技术、MySQL高级应用技术、字符串的处理技术、PHP面向对象编程技术、文件管理、图像和多媒体技术、信息提取与图表分析 技术、报表与打印技术、网络通信技术、PHP与XML技术、安全技术、PHP高级应用...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    6.3.2 指定正确的ASP.NET权限给上传文件 172 6.3.3 理解文件大小的限制 173 6.3.4 把上传的文件放在Stream对象中 174 6.3.5 把文件内容从Stream对象移动到Byte数组中 175 6.4 MultiView和View服务器控件 175 ...

    Microdraw图形控件开发版本-试用版

    10. 支持FTP服务器文件的导入;. 11. 支付PDF文件的浏览和打印; 12. 设置缺省文件格式模式的显示; 打印功能: 1. 直接对当前文件进行打印; 2. 单单的打印框选的元素; 3. 预览打印; 4. 打印出图时附加打印...

    Visual C++程序开发范例宝典(光盘) 第四部分

    Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003...

    Visual C++程序开发范例宝典(光盘) 第八部分

    Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003...

    ASP.NET2.0高级编程(第4版)1/6

    4.1.2 用服务器控件建立页面83 4.1.3 处理服务器控件的事件84 4.2 给服务器控件应用样式87 4.2.1 控件的常见属性87 4.2.2 使用层叠样式表  改变样式88 4.3 HTML服务器控件93 4.3.1 HtmlControl基类95 4.3.2 ...

Global site tag (gtag.js) - Google Analytics