2015-11-10 3 views
0

Я отправляю файл из windows в linux (используя ftp), а затем хочу проверить передачу, сравнив хэш-коды md5 с файлами. Они всегда разные, по-видимому, потому, что linends отличаются между окнами и linux.php md5_file различия между окнами и linux

Как обходной путь, я использовал php для linux для чтения файла в двоичном формате, затем str_replace ("\ n", "\ r \ n", $ filetext), чтобы сделать его похожим на windows и md5 (в php) для создания хэш-кода. Но это все еще не соответствует. Что я делаю неправильно, или есть лучший способ?

+1

, если вы открываете файл в Linux и его модификации, хэши должны быть одинаковыми. Нет автоматического преобразования конца строки просто из копирования/загрузки файла. –

+2

Передача FTP в двоичном режиме, а не ascii. Режим ascii преобразует окончания строки @JonathanKuhn. – AbraCadaver

+0

@AbraCadaver ах, спасибо. Обычно я просто использую авто и никогда не сталкивался с проблемой. –

ответ

0

Вы можете использовать md5 вместо md5_file:

$data = file_get_contents($filename); 
$arr = explode(PHP_EOL, $data); 
$result = md5(serialize($arr)); 
Смежные вопросы