生成的二进制文件给出结构
-
25-09-2019 - |
题
我有一个装置女巫用的二进制格式风格的配置,以及我们产生的文件上。
文件的结构必须包括一些配置(1每个参数)每个形式:
- 类型
- 长
- 值
其中:
- 类型:是一个单字节的标识符,其定义参数
- 长度:是一个单一的八含有长度的价值领域中的八位(不包括类型和长度字段)
- 价值:是从一至254八含的特定价值的参数
我有一个对应表
Type_code[int] => { Type_length[int] => Value[int/string/hex/etc.] }
如何分析,表二进制格式?而且,第二种方式,如何分析,二进制文件,以php阵格式回来吗?
解决方案
还有 pack/unpack 功能可以翻译之间的各种二元/hex/octal/string格式。阅读大量文件,提取必要的位与解,并从那里工作。
$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);
不隶属于 StackOverflow