Machs doch gleich richtig und arbeite byteorientiert mit Längenangaben.
$s = 'foo bar';
$bytesequenz = pack('N', length $s).$s;
Die Längenangabe hat stets 32 Bit, also 4 Byte. Das ergibt einen ganz einfachen Algorithmus: 4 byte lesen, das ergibt eine Längenangabe und mit dieser Angabe dann den String selbst lesen. Ab hier kann sich das Spiel wiederholen: 4 byte lesen.....
Im einfachstn Fall speichers Du damit ein Array. Willst du einen Hash speichern, ändert sich am Algorithmus nichsts, du nimmst nur die Werte paarweise. Soll es ein Hash-of-Hashes sein, nimmst Du immer 3 elements zusammen als Schlüssel-Schlüssel-Wert.
Das Ganze ist dann auch binary safe.
Last edited: 2016-07-28 18:38:12 +0200 (CEST)