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