Quand je le fais, hexdump filename.txt
j'obtiens ce qui suit en sortie:
00000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
00000010
Quand <?= bin2hex(file_get_contents('filename.txt')); ?>
j'obtiens, j'obtiens ceci:
5aacfb5a8dc0155dd0269124c9e81789
Alors pourquoi hexdump suggère-t-il que le contenu devrait être ac5a5afbc08d5d1526d02491e8c98917
alors que PHP suggère qu'il devrait être5aacfb5a8dc0155dd0269124c9e81789
? Suis-je tout simplement pas interpréter correctement la sortie de hexdump?
Réponses:
La différence est big-endian vs little-endian .
Commencez par les quatre premiers octets de sortie hexdump:
ac5a 5afb
. Maintenant, changez l'ordre des octets pour obtenir:Comparez cela avec la sortie PHP:
Ils correspondent.
Par défaut, BSD
hexdump
affiche la sortie en fonction de l'endianité de la machine. Si vous ne le souhaitez pas, vous pouvez spécifier l'-C
option pour obtenir la sortie octet par octet plutôt mot par mot:la source