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 を合成した文字列が入っているようです。それらを数値にするにはどうすればよいですか?