1
我写了一个C++程序,将POST数据发送到php。我的数据是二进制的123456,即0x0001e240。如何处理php中的二进制数据(不是二进制字符串)?
我的PHP文件读起来就像
$f=fopen("php://input", "r");
if (!$f) die ("cannot open");
$data = fread($f, 4);
echo $data;
在(在C++中)我的接收程序,我可以看到回送的数据是完全0x0001e240,所以我相信PHP确实接受纯二进制的事情,并保存到$数据。
但是,我想在php中获得123456。我尝试了像bindec,hexdec等功能,但没有一个可行。我如何从$数据中获取数字。
另外,我需要关心PHP中的endians吗?我现在正在使用Windows环境在本地工作,但我最终会将代码放到云上。
编辑
$f=fopen("test.bin", "rb");
if (!$f) die ("cannot open");
$data = fread($f, 4);
echo $data;
这里是TEST.bin,烧写bin文件包含0x0001e240。看起来我在$ data中得到一个字符串,它与0x00,0x01,0xe2和0x40的ASCII合成。我怎样才能使他们成为一个数字值?
感谢您的回复。但是我收到了一条通知:“注意:数组到字符串的转换”,我没有得到我想要的数字。 –
哎呀,我知道我错了什么。我应该使用N为32位。我认为这是有效的!非常感谢! –