php实现判断文件是否完全相同

2018年6月17日11:16:58 实习第七周 XXM

Begin

最近写爬虫的时候发现抓回来很多图片相同,但是都储存下来了,这样会消耗大量的磁盘空间,也会引起数据冗余.

通过学习和查找发现可以比较hash code来判断文件是否相同.

1.先新建一个command

php artisan make:command File_equals

2.通过系统函数hash_file来进行比较.官方的描述是这样的:

hash_file — Generate a hash value using the contents of a given file

string hash_file ( string $algo , string $filename [, bool $raw_output = FALSE ] )

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)

filename

URL describing location of file to be hashed; Supports fopen wrappers.

raw_output

When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits.

我们可以通过选择hash算法来进行得到该文件的hash值

$file_hash=hash_file('md5', 'test1.png');

输出后的结果如下

QQ截图20180617113121.png

这样就得到了相应的hash值.

public function file_equals($file1,$file2)
    {
        $file1_hash=hash_file('md5', $file1);

        $file2_hash=hash_file('md5', $file2);

        $result=($file1_hash===$file2_hash)?true:false;

        return $result;
    }

返回True表示相同 false 不同

测试1:

图1T1.png    图2  T2.png

测试结果

432.png

不相同

测试2:

这次我们都采用图1做比较

T1.png

测试结果 

6457.png

返回True 相同

这样就实现了简单的文件比较.

End

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容