PHP的pack unpcak该怎么用
程序员文章站
2022-06-08 15:43:48
...
server端是C的, 小端模式
现在比如我要打包:
$ps = pack("ia5",10,"hello");
打包成这样, server端能认出来么?
当我解包的时候
$a = unpack("ia5", $ps);
print_r($a);
变成了:
Array
(
[a5] => 10
)
输出的不对呀, 这个该怎么解包呢?
我想按照我指定的格式来pack和unpack, 该怎么打包数值和字符串一起的那种呢?
(
[n] => 10
[s] => hello
)
现在比如我要打包:
$ps = pack("ia5",10,"hello");
打包成这样, server端能认出来么?
当我解包的时候
$a = unpack("ia5", $ps);
print_r($a);
变成了:
Array
(
[a5] => 10
)
输出的不对呀, 这个该怎么解包呢?
我想按照我指定的格式来pack和unpack, 该怎么打包数值和字符串一起的那种呢?
回复讨论(解决方案)
$ps = pack("ia5",10,"hello");$a = unpack("in/a5s", $ps);print_r($a);Array
(
[n] => 10
[s] => hello
)
多谢多谢, 不过 "in/a5s" 必须要有这个n和s么? 我刚刚试了下i/a5
却输出了
Array
(
[1] => hello
)
unpack 有点小 bug
如果解包的目标不是相同的数据类型,则需要命名。否则会丢失部分数据
不过命名后,对访问也带来不少便利,至少不需要再数数了
那除了这种方法还有什么其他的方法么 多谢
上一篇: 简单谈谈php延迟静态绑定
下一篇: PHP四大安全策略