Domanda

Ho un dispositivo strega uso e formato binario stile config, e devo generare il file on-the-fly.

Struttura del File deve essere composto da un numero di impostazioni di configurazione (1 per ogni parametro) ogni modulo:

  • Tipo
  • Lunghezza
  • Valore

dove:

  • Tipo:si tratta di un singolo ottetto identificatore che definisce il parametro
  • Lunghezza:è un singolo ottetto contenente la lunghezza del campo valore in ottetti (non compreso il tipo e la lunghezza dei campi)
  • Valore:è da uno a 254 byte contenente il valore specifico per il parametro

Ho una tabella corrispondente

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

Come analizzare la tabella a che formato binario?E, secondo modo, come per analizzare i file binario, php array formato?

È stato utile?

Soluzione

C'è il pack/decomprimere funzioni che possono tradurre tra i vari binario/esadecimale/ottale/string formati.Leggere un pezzo del file, estratto di bit necessari con il disimballaggio, e lavorare da lì.

$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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top