我目前正在研究一種上傳一組文件的工具,然後使用md5校驗和將文件與最後一批上傳的文件進行比較,並告訴您哪些文件已更改。zip文件的校驗和
對於普通文件,這工作正常,但一些上傳的文件是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;
}
OT:python zip庫允許您從zip文件中抓取crcs,您還可以使用binascii模塊爲任意任意數據計算它。 –
看起來校驗和是'crc32b',它可以由'$ newCrc = hexdec(hash_file(「crc32b」,「myPath /」。$ name));'在64位機器上生成。 –