Хорошо, у меня есть два файла. Они ТОЧНЫЕ.
Первый файл: http://iadsonline.com/servconfig.php
Второй файл: http://xzerox.info/servconfig.php
Однако, когда я использую md5_file (), чтобы получить их MD5, они возвращают два разных MD5.
Первый возвращает cc7819055cde3194bb3b136bad5cf58d
, что неверно, а второе возвращает 96a0cec80eb773687ca28840ecc67ca1
, что верно.
Файл является просто
Чтобы проверить, я использовал этот код:
$contents = file_get_contents($URL); echo htmlentities($contents);
И они оба возвращаются
Так почему же они хешируют их по-другому?
Второй заканчивается новой строкой, первая – нет.
Пытаясь curl
, я вижу, что первый из них –
без новой строки после него второй – это
с новой линией после него. Так что, конечно, они будут хэш по-разному. И действительно, даже в командной строке (подсказка bash):
$ md5 sc.dat MD5 (sc.dat) = cc7819055cde3194bb3b136bad5cf58d $ md5 zz.dat MD5 (zz.dat) = 96a0cec80eb773687ca28840ecc67ca1
У вас есть пробелы в любом из этих файлов? Откройте их в текстовом редакторе и покажите все символы .
Альтернативно, запустите что-то вроде этого
echo str_replace(array("\n", "\t", "\r"), '[I AM HIDING!]', file_get_contents($URL));
Если вы видите [Я СИДУ!] , Вы будете знать, что делать 🙂
это также случилось со мной. Я установил ту же кодировку (utf-8 без спецификации) ко всем файлам, которые хранят и извлекают хешированные строки 🙂 теперь md5 () дает те же результаты 🙂