массивы — php читает данные из двоичного файла

Я не могу найти ответ на мою проблему. у меня был код

$arr = array(pack("d",1324),pack("d",151),pack("d",8564));
file_put_contents('C:\\Users\\Duc Nguyen\\Desktop\\text.bin', $arr);

поэтому я получил бинарный файл. я использовал код

$s = file_get_contents('C:\\Users\\Duc Nguyen\\Desktop\\text.bin');
foreach(unpack("d", $s) as $n)
echo $n;

читать, но это не сработало. Можете ли вы показать мне, как я могу прочитать данные из файла. Я предпочитаю не использовать функцию сериализации / десериализации.
благодарю вас!

2

Решение

Вы просто использовали неправильный формат для pack() а также unpack(), просто поменяй d в d*, Например:

$arr = array(pack("d*",1324),pack("d*",151),pack("d*",8564));
//...            v  ^               ^              ^
foreach(unpack("d*", $s) as $n)

И цитата из руководства:

Аргумент повторителя может быть целочисленным или * для повторения до конца входных данных.

1

Другие решения

Других решений пока нет …