Как проверить, изменился ли файл?

У меня есть xml-файл с информацией о базе данных, которая должна быть загружена при установке скрипта или при изменении содержимого файла. Могу ли я использовать md5_file () в файле xml, а затем сохранить значение в db и сравнить его с хэшем файла при каждом запуске скрипта? Есть ли у него какие-то недостатки и есть ли другие методы, которые быстрей / проще?

Solutions Collecting From Web of "Как проверить, изменился ли файл?"

Это зависит от того, что вы подразумеваете под «изменением». Если вам требуется, чтобы содержимое действительно было изменено, тогда проверка filemtime недостаточно – это фантастический первый шаг и его следует использовать в первую очередь, но этого недостаточно.

Конбинируйте файловое время с хешем содержимого файла (например, md5_file ), и он будет работать эффективно.

Лучше всего было бы сохранить время файла файла и сравнить его с файловым временем, которое вы проверите в будущем.

 if(filemtime('myfile.txt') > $result_set['filemtime']) { // file was modified } 

Я надеюсь, что вы можете сами сделать базу данных.

Возможно, вы можете использовать filemtime() PHP . Проще говоря, эта функция получает время изменения файла для указанного файла.

Эта функция возвращает отметку времени unix , поэтому вам нужно сохранить последнее известное время модификации где-нибудь, чтобы сравнить ее с новым значением.

 $modifiedTs = filemtime($filename); if ($modifiedTs != $lastModificationTs){ echo "$filename was modified!"; } 

Самый простой способ – сравнить file_date – вы можете использовать filemtime для этого