Pregunta

tengo una bruja dispositivo config utilización estilo de formato binario, y tengo que generar archivos en la marcha.

estructura de archivos debe consistir en un número de parámetros de configuración (1 por parámetro) cada uno de la forma:

  • Tipo
  • Longitud
  • Valor

donde:

  • Tipo: es un identificador de un solo octeto que define el parámetro
  • Longitud: es un solo octeto que contiene la longitud del campo de valor en octetos (sin incluir los campos de tipo y longitud)
  • Valor: es de uno a 254 octetos que contienen el valor específico para el parámetro

tengo una tabla que corresponde

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

Cómo analizar esa mesa a ese formato binario? Y, en segundo camino, cómo analizar el archivo binario, para volver php formato de matriz?

¿Fue útil?

Solución

No es la empacar / funciones de desempaquetado que pueden traducir entre varios formatos binario / hexadecimal / octal / cuerda. Leer un trozo del archivo, extraer bits necesarios con deshacer las maletas, y trabajar desde allí.

$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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top