これはおそらく最良のアイデアではないが、私はJavaのDataOutputStreamを使ってエンコードされたファイルをPHPで読み込もうとしています。PHPのJava DataOutputStreamからバイナリデータを読み込むときの整数形式は何ですか?
具体的には、Javaで私が使用:
はdataOutputStream.writeInt(number);
次にPHPで私が使用してファイルを読む:
$data = fread($handle, 4);
$number = unpack('N', $data);
奇妙なことがあること、正しい値を与えるPHPで唯一のフォーマット文字は "N"で、これは "unsigned long(常に32ビット、ビッグエンディアンのバイトオーダ)"を表すはずです。私は、Javaのint
はいつも署名されていると思った?
このようにしてJavaでエンコードされたデータを確実に読み取ることはできますか?この場合、整数は正の値になる必要があります。それはまたかなり大きい必要があるかもしれないのでwriteShort()
は不可能です。それ以外の場合はもちろん、XMLやJSONなどを使用できます。