Um verschiedene Informationen aus Binärdaten zu extrahieren möchte ich einen String an der Stelle von Nullbytes spliten, bzw. diese ersetzen. Das funktioniert mit chr ( 0 ) gut, bei drei Nullbytes hintereinander ist das nicht mehr so schön:
Theoretisch müsste das doch auch hexadezimal (0x00) gehen oder? Problem ist nur, 0x00 ist erstmal dezimal (mit automatischem Typecasting auch == chr ( 0 )), wenn man 0x00 aber manuell auf (string) castet um damit ersetzten zu können ist das ganze nicht mehr gleich mit chr ( 0 ).
Laut ASCII Tabelle sollte das aber passen. Gibt es noch andere Möglichkeiten mit Nullbytes in Strings arbeiten bzw. kann irgendjemand erklären wo hier die Unterschiede liegen?
PHP-Code:
$contents = explode ( chr ( 0 ) . chr ( 0 ) . chr ( 0 ), $content );
PHP-Code:
( chr ( 0 ) === (string)0x00 ) // false
Kommentar