从php中读取二进制值的数据?

时间:2015-11-27 15:05:29

标签: php

我通过从数据库中收集值来获取php中的以下二进制值。

0xF4010800000000960106000000002f03040000000063030700000000...

问题是我不知道如何分段阅读。

例如,第一部分F401应该作为smallint(2字节)500返回,然后就在08000000之后应该作为int返回(4字节无符号)并返回8,这是如何在PHP中完成的?

编辑:

我已经尝试hexdec(substr($value, 0, 4))尝试获取前4个字节的值500.但这项工作没有用,我不知道还有什么可以尝试。

1 个答案:

答案 0 :(得分:1)

http://us3.php.net/manual/en/function.unpack.php

注意:您的数据以little-endian打包。

$bin = hex2bin('F4010800000000960106000000002f03040000000063030700000000');
var_dump(unpack('vone/itwo/h*remain', $bin));

输出:

array(3) {
  ["one"]=>
  int(500)
  ["two"]=>
  int(8)
  ["remain"]=>
  string(44) "0069106000000000f230400000000036307000000000"
}