В настоящее время я работаю над инструментом, который загружает группу файлов, затем использует контрольные суммы md5 для сравнения файлов с последним загруженным пакетом и сообщает вам, какие файлы были изменены.
Для обычных файлов это работает нормально, но некоторые из загружаемых файлов представляют собой zip-архивы, которые почти всегда изменялись, даже если файлы внутри одни и те же.
Есть ли способ выполнить контрольную сумму другого типа, чтобы проверить, изменились ли эти файлы, без необходимости распаковывать каждый из них по отдельности и затем сравнивать содержимое каждого файла по отдельности.
Вот моя текущая функция
function check_if_changed($date, $folder, $filename)
{
$dh = opendir('./wp-content/uploads/Base/');
while (($file = readdir($dh)) !== false) {
$folders[] = $file;
}
sort($folders);
$position = array_search($date, $folders);
$prev_folder = $folders[$position - 1];
if ($prev_folder == '.' || $prev_folder == '..')
{ return true;}
$newhash = md5_file('./wp-content/uploads/Base/'.$date.'/'.$folder.'/'.$filename);
$oldhash = md5_file('./wp-content/uploads/Base/'.$prev_folder.'/'.$folder.'/'.$filename);
if ($oldhash != $newhash){
return true;
}
return false;
}