16

Когда я делаю hexdump filename.txt я получаю следующее:

00000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
00000010 

Когда я делаю <?= bin2hex(file_get_contents('filename.txt')); ?> Я понял это:

5aacfb5a8dc0155dd0269124c9e81789

Так почему hexdump предлагает, чтобы содержимое было ac5a5afbc08d5d1526d02491e8c98917 когда PHP предлагает, чтобы они были 5aacfb5a8dc0155dd0269124c9e81789? Я просто не правильно интерпретирую вывод hexdump?

1 ответ1

23

Разница между порядком байтов и порядком байтов.

Начните с первых четырех байтов вывода hexdump : ac5a 5afb . Теперь переключите порядок байтов, чтобы получить:

5aac fb5a

Сравните это с выводом PHP:

5aac fb5a

Они совпадают.

По умолчанию BSD hexdump отображает выходные данные на основе порядкового номера машины. Если вы не хотите этого, вы можете указать опцию -C чтобы получить вывод побайтно, а не пословно:

$ hexdump filename.txt 
0000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
0000010
$ hexdump -C filename.txt 
00000000  5a ac fb 5a 8d c0 15 5d  d0 26 91 24 c9 e8 17 89  |Z..Z...].&.$....|
00000010

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .