相关疑难解决方法(0)

PHP Pack/unpack - 它可以处理可变长度的字符串

我一直试图弄清楚Pack/Unpack的PHP实现是否可以做Perl版本能够做的事情.我希望能用PHP做的例子是:

http://perldoc.perl.org/perlpacktut.html#String-Lengths

# pack a message: ASCIIZ, ASCIIZ, length/string, byte
my $msg = pack( 'Z* Z* C/A* C', $src, $dst, $sm, $prio );
# unpack
( $src, $dst, $sm, $prio ) = unpack( 'Z* Z* C/A* C', $msg );
Run Code Online (Sandbox Code Playgroud)

这个Perl代码的作用描述如下:

将两个包代码与斜杠(/)组合在一起,将它们与参数列表中的单个值相关联.在pack中,根据第一个代码获取和打包参数的长度,而在使用斜杠后的模板代码转换后添加参数本身.

即你可以打包可变长度的字符串,然后一步解压缩它们,而不是先弄清字符串的长度,然后再将它作为一个单独的步骤解压缩.

PHP手册没有提到这个功能,任何尝试在解包中插入像'C/A*'这样的模式都给我带来了错误.这是手册中的疏忽还是PHP版本不支持的东西?

php unpack pack

3
推荐指数
1
解决办法
3330
查看次数

标签 统计

pack ×1

php ×1

unpack ×1