Generare file binario con struttura in
-
25-09-2019 - |
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?
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