контрольные суммы в zip-файлах

В настоящее время я работаю над инструментом, который загружает группу файлов, затем использует контрольные суммы 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;
}
5
задан Kit Barnes 21 May 2012 в 16:09
поделиться