PHP читает файл как массив байтов
у меня есть файл, написанный с использованием JAVA
программа, которая имеет массив целых чисел, записанных как двоичные я сделал цикл for над этим массивом и написать его с помощью этого метода
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
.
2 ответов
Я считаю, что код, который вы ищете это:
$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