我编写了一个将 POST 数据发送到 php 的 C++ 程序。我的数据是二进制的 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中的字节序吗?我现在在本地使用 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 组合而成。我怎样才能把它们变成一个数值?