PHP遍历文件之比对文件(一)

文章转载至http://www.puwei.link/2017/03/22/69.html
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/3/22
 * Time: 20:07
 */
$file_limit = ['png', 'jpg', 'gif', 'bmp', 'exe']; //不需要加密的文件后缀名
$file_limit_s = ['.idea','.','..'];//忽略文件目录
//遍历文件
function traverse($path = '.', $file_limit, $file_limit_s)
{
    if (file_exists($path) == false) {
        return 0;
    }

    $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);

        } 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)) {
                echo '这个是文件' . dirname(__FILE__) . "\\" . $file . '<br>';
                $file_str=dirname(__FILE__) . "\\" . $file ;
                $str= file_get_contents($file_str);
                echo md5($str).'<br>';
                //这个MD5值可以保存数据,可以写入文件
                //在写一个PHP去比对文件有没有修改
            }
        }
    }
    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);
if ($aa == 0) {
    echo '目录不存在';
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值