我写了一个C ++程序,它将POST数据发送给php。我的数据是二进制的123456,即0x0001e240。
我的php文件读起来像
$f=fopen("php://input", "r");
if (!$f) die ("cannot open");
$data = fread($f, 4);
echo $data;
在我的接收程序中(在C ++中),我可以看到回显的数据正好是0x0001e240,所以我相信php确实接受了纯二进制的东西并保存到$ data中。
但是,我想在php中获得123456。我尝试过像bindec,hexdec等功能,但它们都不起作用。如何从$ data中获取数字。
另外,我需要关心php中的endians吗?我现在在Windows环境下工作,但我最终将我的代码放到云端。
修改
$f=fopen("test.bin", "rb");
if (!$f) die ("cannot open");
$data = fread($f, 4);
echo $data;
其中test.bin是包含0x0001e240的bin文件。似乎我在$ data中得到一个字符串,其中包含0x00,0x01,0xe2和0x40的ASCII。如何将它们变成数字值?
答案 0 :(得分:1)