如何在 PHP 中检索打包二进制文件的一部分?
Posted
技术标签:
【中文标题】如何在 PHP 中检索打包二进制文件的一部分?【英文标题】:How to retrieve a part of packed binary in PHP? 【发布时间】:2021-06-05 16:35:10 【问题描述】:我有打包好的数据:
$binarydata = pack("C*", ...$chunk);
我知道标头来自该 $binarydata 的 [1..189] nodeJs 中的等价物:
var bufferHeader = Buffer.from(data, 1, 189)
如何从$binarydata
检索该部分?
【问题讨论】:
【参考方案1】:substr()
可以对二进制字符串执行此操作。
$binarydata = pack("C*", ...$chunk);
$bufferHeader = substr($binarydata, 1, 189); // offset, length
这是一个简单的例子:
$chunk = [0, 12, 34, 0, 56, 100, 128, 200, 225, 255];
$binarydata = pack("C*", ...$chunk);
// extract header
$header = substr($binarydata, 2, 4);
print_r(unpack("C*",$header));
输出:
Array
(
[1] => 34
[2] => 0
[3] => 56
[4] => 100
)
live demo
【讨论】:
它回答了你的问题吗?以上是关于如何在 PHP 中检索打包二进制文件的一部分?的主要内容,如果未能解决你的问题,请参考以下文章