PHP去除重复图片文件的代码

发布时间:2021-01-23编辑:脚本学堂
分享一例php代码,用于去除文件夹下的重复图片文件,有需要的朋友可以参考下。

本节内容:
PHP去除重复图片文件

实现思路:
通过md5来判断是否重复,开始使用md5sum工具求md5,然后再用PHP读取结果去重。
后来考虑到php的简洁与高效,所以就用它来实现了。

文件数: 80510, 大小: 452,496,873 字节

只查找不删除的速度:
第一次耗时: 122s
第二次耗时: 44s
第三次耗时: 44s

在查找多次之后, 立即查找并删除的速度:
耗时: 83秒, 删除了54406个文件

例子:
 

复制代码 代码示例:

<?php
/**
* 去除重复的图片文件
* by www.jb200.com
*/
exec("find . -type f", $lines);

$arr = array();
$del = array();

$n = 0;
foreach($lines as $line){
 $line = trim($line);
 if(!$line){
  continue;
 }
 $n ++;
 $md5 = md5_file($line);

 if(isset($arr[$md5])){
  $del[] = $line;
  //echo "$n del $linen";
  unlink("{$line}");
 }else{
  $arr[$md5] = 1;
 }
}

echo "del " . count($del) . " filesn";
//echo join("n", $del);