Как переместить повторяющиеся файлы из папки в другую в php?

Я хочу отсканировать мою папку изображений WhatsApp и переместить все повторяющиеся изображения в папку с именем recycle bin чтобы удалить их позже, вот мой код:

<?php

$dir    = 'C:\wamp\www\whatsapp';
$files = scandir($dir);

$x = 0;

foreach($files as $f1)
{

$crc1 = strtoupper(dechex(crc32(file_get_contents("whatsapp/".$f1))));

unset($files[$x]);

$j = 0;

foreach($files as $f2)
{

$crc2 = strtoupper(dechex(crc32(file_get_contents("whatsapp/".$f2))));

if($crc1 == $crc2){

rename("whatsapp/".$f2, "recycle bin/".$f2);

unset($files[$j]);
}

$j++;
}

$x++;
}

exit('Done');

кажется ли этому коду доверенным перемещать только повторяющиеся изображения без каких-либо ошибок?

0

Решение

Я написал небольшой скрипт для вашего случая (но я не проверял его):

<?php

$fileHashes = [];

foreach(scandir('C:\wamp\www\whatsapp') as $file){
$fileHashes["whatsapp/".$file] = sha1(file_get_contents("whatsapp/".$file));
}

$doubles = array_diff_key($fileHashes, array_unique($fileHashes))
foreach($doubles as $file=>$hash){
unlink($file);
}

exit('Done');
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]