Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP的pack unpcak该怎么用

PHP的pack unpcak该怎么用

WBOY
WBOYasal
2016-06-23 14:09:11991semak imbas

server端是C的, 小端模式
现在比如我要打包:
$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
如果解包的目标不是相同的数据类型,则需要命名。否则会丢失部分数据
不过命名后,对访问也带来不少便利,至少不需要再数数了

那除了这种方法还有什么其他的方法么 多谢

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn