Niehztog: unpack von binärdaten

Beitrag lesen

Hallo,

1. Problem:
ich habe eine Datei, in die drei Zahlen wie folgt reingeschrieben werden:

  
$handle = fopen('test.bin', "a"));  
fwrite($handle, pack ("VVV", 1262698832, 44927, 128)));  
fclose($handle);  

Mein Ziel ist es nun, diese Werte später auch wieder aus der Datei zu lesen. Momentan klappt es bei mir so:

  
$handle = fopen('test.bin', 'rb');  
  
$data = fread($handle, 4);  
$raw = unpack("V", $data);  
$zahl1 = $raw[1];  
  
$data = fread($handle, 4);  
$raw = unpack("V", $data);  
$zahl2 = $raw[1];  
  
$data = fread($handle, 4);  
$raw = unpack("V", $data);  
$zahl3 = $raw[1];  
  
fclose($handle);  

Gibt es eine Möglichkeit, die Zahlen "eleganter" auszulesen - also mit einem einzigen unpack Befehl? Ich habe versucht unpack("VVV", $data), wobei in $data dann auch alles drin stand. Das klappte irgendwie nicht, es kam nur die erste Zahl heraus.

2. Problem:
Mit folgendem Befehl werden binärdaten gepackt:

  
$data = pack('a56@56VV', 'irgendeinstring', 44927, 128);  

Hier versteh ich den pack Befehl noch nicht mal. Ich habe keine Ahnung wie ich die drei Ursprungswerte mit unpack zurück bekomme. Kann mir da jemand helfen?

mfG
Niehztog