PHP遍历文件之比对文件(二)
来源:互联网 发布:淘宝可以删除差评 编辑:程序博客网 时间:2024/05/17 08:42
转载来至
这样写性能肯定是要差一点,保存在数据库就好点,只是保存数据库每次要去读,也是耗时的
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2017/3/23 * Time: 22:36 */$file_limit = ['png', 'jpg', 'gif', 'bmp', 'exe']; //不需要加密的文件后缀名$file_limit_s = ['.idea','.','..','file'];//忽略文件目录$file_name='./file/file.txt';$mdongwenj=[];if(!file_exists ('./file')){ mkdir('./file',777);}/** * @param $file_name 保存MD5值的文件 * @param $file 需要判断的的文件 * @param $md5 当前文件的MD5值 */function du_file($file_name,$file,$md5){ $lines=file($file_name); foreach ($lines as $value) { $line=explode("|",$value); if($file==trim($line[1])){ if($line[0]!=$md5){ return false; } } } return true;}//遍历文件function traverse($path = '.', $file_limit, $file_limit_s,$file_name){ if (file_exists($path) == false) { return 0; } global $mdongwenj; $current_dir = opendir($path); //opendir()返回一个目录句柄,失败返回false while (($file = readdir($current_dir)) !== false) { //readdir()返回打开目录句柄中的一个条目 $sub_dir = $path . DIRECTORY_SEPARATOR . $file; //构建子目录路径 if (in_array($file, $file_limit_s)) { continue; } else if (is_dir($sub_dir)) { //如果是目录,进行递归// echo '这个是目录 ' . $file . ':<br>'; traverse($sub_dir, $file_limit, $file_limit_s,$file_name); } else { //如果是文件,直接输出// echo '这个是文件' .dirname(__FILE__). "\\" . $file . '<br>'; $path_file = dirname(__FILE__) . "\\" . $file;// echo '这个是文件' . $path_file . '<br>'; $ex = extend_3($path_file); //忽略后缀名 if (!in_array($ex, $file_limit)) { $file_str=dirname(__FILE__) . "\\" . $file ; $str= file_get_contents($file_str);// echo md5($str).'|'. dirname(__FILE__) . "\\" . $file ."<br>"; if(!du_file($file_name,$file_str, md5($str))){ $mdongwenj[]=$file_str; } } } } return 1;}//获取文件后缀名function extend_3($file_name){ $extend = explode('.', $file_name); $va = count($extend) - 1; return $extend [$va];}$aa = traverse('.', $file_limit, $file_limit_s,$file_name);$md_str='';foreach($mdongwenj as $vaiue){ $md_str.=$vaiue."<br>\n";}if(empty($md_str)){ echo '文件全部没有变动';}else{ echo '变动了的文件'.$md_str;}
0 0
- PHP遍历文件之比对文件(二)
- PHP遍历文件之比对文件(一)
- python实现文件夹文件遍历及比对
- 批量文件比对
- 文件比对工具
- 文件比对.
- 文件比对
- 关于文件比对
- linux目录下多个文件行数比对函数 关键字遍历文件 linux命令写入C函数
- c++对文件进行操作之遍历双层文件结构
- Linux awk 比对文件
- 比对近似文件代码
- C#模板文件比对
- php遍历文件
- php ---- 文件遍历
- php 遍历 excel文件。
- php 遍历txt文件
- php遍历文件目录
- Java_实现打印各种样式的乘法表
- IE6/IE7/IE8兼容问题|overflow,display,position的区别|块元素与内联元素的区别
- 【Leetcode】415. Add Strings
- 02-JZ2440裸机学习之NAND FLASH
- 编程理想
- PHP遍历文件之比对文件(二)
- 关于C++中用静态成员统计实例化对象个数问题_CVTE技术面问题
- service和doXXX方法
- 海量数据处理+数据挖掘常见考点
- IT生涯, 我的常用软件清单
- Sublime3的安装配置及常用插件推荐
- Java中this和super关键字深究
- 爬虫工具之就业调查
- 字节序