我通过从数据库中收集值来获取php中的以下二进制值。
0xF4010800000000960106000000002f03040000000063030700000000...
问题是我不知道如何分段阅读。
例如,第一部分F401
应该作为smallint(2字节)500
返回,然后就在08000000
之后应该作为int返回(4字节无符号)并返回8
,这是如何在PHP中完成的?
编辑:
我已经尝试hexdec(substr($value, 0, 4))
尝试获取前4个字节的值500.但这项工作没有用,我不知道还有什么可以尝试。
答案 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"
}