У меня есть файл, написанный с использованием 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
.
Я считаю, что код, который вы ищете, это:
$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/>'; }
,$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/>'; }
Вы должны прочитать файл в виде строки, а затем использовать распаковку для его анализа. В этом случае вы сохранили 32-битное целое число в байтовом порядке по большому счету, поэтому используйте:
$out = unpack("N", $in);
Коды формата описаны здесь: http://www.php.net/manual/en/function.pack.php