Frage

Ich habe ein Gerät Hexe Verwendung Binärformat Stil config und ich muss, dass Dateien generieren on-the-fly.

Dateistruktur muss eine Reihe von Konfigurationseinstellungen bestehen (1 pro Parameter), die jeweils die Form:

  • Typ
  • Länge
  • Wert

Dabei gilt:

  • Typ: ist eine Single-Byte-Kennung, die die Parameter
  • definiert
  • Länge: ist ein einzelnes Oktett der Länge des Wertefeldes in Bytes enthalten (ohne Typ und Länge Felder)
  • Wert: von eins bis 254 Bytes des spezifischen Wert für den Parameter enthält,

Ich habe eine entsprechende Tabelle

 Type_code[int] => { Type_length[int] => Value[int/string/hex/etc.] }

Wie die Tabelle zu diesem Binärformat analysieren? Und zweitens Art und Weise, wie die binäre Datei zu analysieren, um PHP-Array-Format zurück?

War es hilfreich?

Lösung

Es gibt die packen / auspacken Funktionen, die zwischen verschiedenen binär / hex / oktal / string Formate übersetzen. Lesen Sie ein Stück der Datei extrahiert erforderliche Bits mit auspacken, und von dort aus arbeiten.

$fh = fopen('data.txt', 'rb'); // b for binary-safe

// read 2 bytes, extract code/length, then read $length more bytes to get $value
while(($data = fread($fh, 2)) !== EOF)) { 
    list($code, $length) = unpack('CC', $data);
    $data = fread($fh, $length);

    // do stuff
}
fclose($fh);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top