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