I have a file written using JAVA
program which has an array of integers written as binary I made an for loop over this array and write it using this method
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);
}
I'm ask about how to read this file in PHP
.
I believe the code you are looking for is:
$byteArray = unpack("N*",file_get_contents($filename));
UPDATE: Working code supplied by 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/>';
}
You should read the file as a string and then use unpack to parse it. In this case you have stored a 32-bit integer in big endian byte order, so use:
$out = unpack("N", $in);
The format codes are documented here: http://www.php.net/manual/en/function.pack.php
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With