現在、ファイルのグループをアップロードし、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;
}