Ketika saya melakukannya hexdump filename.txt
saya mendapatkan yang berikut ini sebagai output:
00000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
00000010
Ketika saya melakukannya <?= bin2hex(file_get_contents('filename.txt')); ?>
saya mendapatkan ini:
5aacfb5a8dc0155dd0269124c9e81789
Jadi mengapa hexdump menyarankan konten seharusnya ac5a5afbc08d5d1526d02491e8c98917
ketika PHP menyarankan mereka seharusnya 5aacfb5a8dc0155dd0269124c9e81789
? Apakah saya tidak menafsirkan output hexdump dengan benar?
Jawaban:
Perbedaannya adalah urutan big-endian vs little-endian .
Mulailah dengan empat byte pertama output hexdump:
ac5a 5afb
. Sekarang alihkan urutan byte untuk mendapatkan:Bandingkan ini dengan output PHP:
Mereka cocok.
Secara default, BSD
hexdump
menampilkan output berdasarkan endianness mesin. Jika Anda tidak menginginkannya, Anda dapat menentukan-C
opsi untuk mendapatkan output byte-by-byte daripada kata-demi-kata:sumber