Wenn ich das tue, hexdump filename.txt
bekomme ich folgendes als Ausgabe:
00000000 ac5a 5afb c08d 5d15 26d0 2491 e8c9 8917
00000010
Wenn ich das tue, <?= bin2hex(file_get_contents('filename.txt')); ?>
bekomme ich Folgendes:
5aacfb5a8dc0155dd0269124c9e81789
Warum schlägt hexdump vor, dass der Inhalt sein sollte, ac5a5afbc08d5d1526d02491e8c98917
wenn PHP vorschlägt, dass er sein sollte 5aacfb5a8dc0155dd0269124c9e81789
? Interpretiere ich die Ausgabe von hexdump einfach nicht richtig?
Antworten:
Der Unterschied ist Big-Endian vs. Little-Endian .
Beginnen Sie mit den ersten vier Bytes von hexdump Ausgabe:
ac5a 5afb
. Schalten Sie nun die Bytereihenfolge um, um zu erhalten:Vergleichen Sie dies mit der PHP-Ausgabe:
Sie passen.
Standardmäßig zeigt BSD
hexdump
die Ausgabe basierend auf der Endianität der Maschine an. Wenn Sie das nicht möchten, können Sie die-C
Option festlegen , dass die Ausgabe Byte für Byte und nicht Wort für Wort erfolgt:quelle