我有一个使用JAVA
程序编写的文件,该程序有一个以二进制形式编写的整数数组
public static void writeInt(OutputStream out, int v) throws IOException {
out.write((v >>> 24) & 0xFF);
out.write((v >>> 16) & 0xFF);
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
}
有人问我如何在PHP
中读取此文件。
我相信您正在寻找的代码是:
$byteArray = unpack("N*",file_get_contents($filename));
更新:OP 提供的工作代码
$filename = "myFile.sav";
$handle = fopen($filename, "rb");
$fsize = filesize($filename);
$contents = fread($handle, $fsize);
$byteArray = unpack("N*",$contents);
print_r($byteArray);
for($n = 0; $n < 16; $n++)
{
echo $byteArray [$n].'<br/>';
}
您应该将文件读取为字符串,然后使用unpack对其进行解析。在这种情况下,您已经以大端字节顺序存储了一个32位整数,因此使用:
$out = unpack("N", $in);
此处记录了格式代码:http://www.php.net/manual/en/function.pack.php