$filename_filelist = 'md5_log/file.list';
$filename_md5hash = 'md5_log/md5.hash';
$arr = file($filename_filelist); 
$arr_tmp = file($filename_md5hash);
$arr_md5 = array();
// считываем md5.hash в ассоц.массив
foreach ($arr_tmp as $fileAndmd5) { 
  $aRow = explode(':', trim($fileAndmd5));
  if (sizeof($aRow) == 2) {
    $arr_md5[trim($aRow[0])] = trim($aRow[1]); // пара Имя файла -> md5
  }
}
//проход по именам файлов и проверка md5
$md5_changed = false;
foreach ($arr as $value) { 
  $curfile = trim($value);
  if (file_exists($curfile)) {
    $md5_org = $arr_md5[$curfile];
    $md5_curfile = @md5_file($curfile); 
    if (strlen($md5_org) > 0) {
      // контр сумма для текущего файла уже подсчитана - проверим
      
      
      if ($md5_org !=$md5_curfile) {
        /*$message = "В последний раз файл <br>" . $curfile . " был изменен: " . date("d-Y-H:i:s.", 
        @filemtime($curfile)) . " MD5 файла: " . @md5_file($curfile) . " Размер файла: " . @filesize($curfile) . " байт"; 
    echo ("<br>Информация об измененных файлах отправлена на емайл: <br> " . $curfile . 
        "<br>"); 
    @mail('noreply@bk.ru', 
        'Сообщение об изменение МД5 суммы файлов на сервере : http://' . $_SERVER['SERVER_NAME'] . 
        $cur_file, $message); */
        
        
        echo " sdfsdf" ;
        // запомним новую md5
        $arr_md5[$curfile] = $md5_curfile;
        $md5_changed = true;
      }
    } else {
      // для этого файла md5 еще не рассчитывалась
      $arr_md5[$curfile] = $md5_curfile;
      $md5_changed = true;
    }
  }
}
print "<pre>";
print_r($arr_md5); 
if ($md5_changed) 
{
  // записываем в файл md5.hash измененный ассоц массив
  rename($filename_md5hash, $filename_md5hash . '.bak');
  $fp = fopen($filename_md5hash, 'w'); 
  foreach($arr_md5 as $curfile => $curmd5) {
    fwrite($fp, "$curfile:$curmd5\n"); 
  }
  fclose($fp); 
  unlink($filename_md5hash . '.bak');
}