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位。我認爲這是有效的!非常感謝! –