У меня есть 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 для этого