一個骯髒的方式(不使用數據庫)將是:
$allnames = implode(",", $fileslist);
file_put_contents($post_dir . "/md5file.txt",$allnames);
$md5file = md5_file($post_dir . "/md5file.txt");
$last_hash = file_get_contents($post_dir . "/last_hash.txt");
if ($md5file != $last_hash) {
// save the new hash
file_out_contents($post_dir . "/last_hash.txt", $md5file);
// some file may have been added, removed or rename
// do something..
} else {
// no files has been added, removed or renamed, since last change.
// do something..
}
基本上,我存儲當前散列到一個特定的文件,並讀取下一個迭代這個文件。如果散列已經改變,我將新的散列存儲到這個文件以供稍後比較,並且瞧!
請注意,如果您正在使用一個,則可以在數據庫上執行相同的操作。
然後保存散列並檢查它? – kero
單獨更改文件名不應該改變md5,因爲它是文件系統條目的一部分,而不是文件本身。 – Powerlord
@Powerlord:在這個特定的情況下,md5會改變,因爲文件內容會隨着其他文件名稱的改變而改變。 – Stoic