php从二进制文件中读取数据

时间:2015-02-21 16:38:21

标签: php arrays binary

我无法找到问题的答案。我有代码

$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;

阅读它,但它没有工作。你告诉我如何从文件中读取数据。我不想使用serialize / unserialize函数。 谢谢!

1 个答案:

答案 0 :(得分:1)

您刚使用了pack()unpack()的错误格式,只需将d更改为d*即可。 E.g:

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

手册中的引用:

  

转发器参数可以是整数值或*,用于重复输入数据的结尾。