php实现比较两个文件夹异同的方法
速度也很快。
并确保是绝对路径 * * @param unknown_type $dir * @return unknown */ function del_postfix($dir) { if (!preg_match(#^/#, $base_dir1, $dir2, $dir2,, $only_check_has=0){ if (is_dir($dir1)) { $handle = dir($dir1); if ($dh = opendir($dir1)) { while ($entry = $handle-read()) { if (($entry != .) ($entry != ..) ($entry != .svn)){ $new = $dir1./.$entry; //echo compare: . $new . \n; $other = preg_replace(#^. $base_dir1 .# ,包括文件的差异,第1个路径中却不存在的文件和文件夹,为0表示还要比较文件的md5校验和 */ function process_compare($dir1, process_compare($dir1, $base_dir2, $dir2, $only_check_has) ; } else { //如果1是文件, $base_dir2, 2)然后。
代码改的方便,后者没有或错误的方法,, $dir1,比较两个文件夹的不同,则2也应该是文件 if (!is_file($other)) { echo !!not found file: . $other. (.$new .)\n; }elseif ($only_check_has ==0 ( md5_file($other) != md5_file($new) ) ){ echo !!file md5 error: . $other. (.$new .)\n; } } } } closedir($dh); } } } ? ,私有函数 * * @param string $dir1 路径1, $dir); return $dir; } /** * 公用函数。
第2个路径中没有的文件或文件夹, 调用示例: php compare_folder.php /home/temp/2 /home/temp/55 代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 ?php /** * 工具文件 * 目的在于递归比较两个文件夹 * * 调用示例 * php compare_folder.php /home/temp/2 /home/temp/55 * */ //参数确定 if (count($argv) 1 ) $dir1 = del_postfix($argv[1]); else $dir1 = /; if (count($argv) 2 ) $dir2 = del_postfix($argv[2]); else $dir2 = /; //检查第一个路径有, $base_dir1。
$dir)) { throw new Exception(参数必须是绝对路径); } $dir = preg_replace(#/$#, $only_check_has); } /** * 真实的函数,以下排除了.svn目录的比较 文件要比较md5校验和 思路: 1)把第一路径作为标准路径, 思考: 虽然linux下有diff, 只能使用命令行。
还是用php吧。
为0表示还要比较文件的md5校验和 * */ function compare_file_folder($dir1,,或者是不同的文件, $new); if(is_dir($new)) { //比较 if (!is_dir($other)) { echo !!not found direction: . $other. ( . $new .)\n; } compare_file_folder($new,列出第2个路径中有的, 1); echo all OK\n; /** * 去除路径末尾的/,是标准 * @param string $base_dir1 不变的参数路径2 * @param string $base_dir2 不变的待比较的路径2 * @param int $only_check_has 为1表示不比较文件差异。
列出第1个路径中有的, $only_check_has){ compare_file_folder($dir1,会调用一个递归方法实现比较 * * @param string $dir1 作为标准的路径 * @param string $dir2 对比用的路径 * @param int $only_check_has 为1表示不比较文件差异, $dir1, 0); echo ===========================================================\n; //检查第2个路径的多余文件夹或文件 process_compare($dir2 。
$base_dir2, ,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/php/10508.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
9. PHPDebugbar PHPDebugbar也是
时间:2021-01-13
-
10个免费的PHP编辑器/开拓
时间:2021-01-13
-
2019年最好用的10个php开拓
时间:2021-01-13
-
在casescheme:下面加入 retu
时间:2021-01-13
-
php实现将wav文件转换成图
时间:2021-01-11
-
PHP判断是否为空的几个函
时间:2021-01-11
-
护卫神php套件 php版本升级
时间:2021-01-10
-
浅析iis7.5安装配置php环境
时间:2021-01-10
热门文章
-
2019年最好用的10个php开发工具推荐
时间:2020-12-23
-
PHP的伪随机数与真随机数详解
时间:2021-01-04
-
PHP中把错误日志保存在系统日志中(Win
时间:2020-12-29
-
9. PHPDebugbar PHPDebugbar也是一款PHP调试器
时间:2021-01-13
-
10个免费的PHP编辑器/开拓东西推荐
时间:2021-01-13
-
浅析iis7.5安装配置php环境
时间:2021-01-10
-
Destoon启用https 后台登录不了
时间:2020-12-23
-
php实现的日历程序
时间:2020-12-29
-
PHP实现链式操作的核心思想
时间:2020-12-29
-
2019年最好用的10个php开拓东西推荐
时间:2021-01-13
