PHP pack与unpack函数

pack() 格式字符串

符号 备注
a NULL填充字符串
A SPACE填充字符串
h 十六进制字符串, 底四位
H 十六进制字符串, 高四位
c 有符号字符
C 无符号字符
s 有符号短整型 (16位, 主机字节序)
S 无符号短整型 (16位, 主机字节序)
n 无符号短整型 (16位, big endian byte order)
v 无符号短整型 (16位, little endian byte order)
i 有符号整型 (machine dependent size and byte order)
I 无符号整型 (machine dependent size and byte order)
l 有符号长整型 (32位, machine byte order)
L 无符号长整型 (32位, machine byte order)
N 无符号长整型 (32位, big endian byte order)
V 无符号长整型 (32位, little endian byte order)
f 单晶实型 (machine dependent size and representation)
d 双晶实型 (machine dependent size and representation)
x NUL byte
X Back up one byte
@ NUL-fill to absolute position

范例1

<?php
echo pack("C3",80,72,80);
输出: PHP
注:按参数顺序打包成3个无符号字符
?>
范例2
<?php
echo pack("C*",80,72,80,72,72,72,72,72);
输出:PHPHHHHH
注: *号代表匹配任意个
?>

范例3

<?php
$text = "呵呵呵呵呵";
$len = strlen($text);
echo pack("a{$len}", $text);
注:把$len长个字符打包,这里的$len是字节长度
?>

范例4

<?php
$arr_unpack = unpack('Nlen/Ntype/Nsub/Ntotal/a*content', $buf);
注:解包时如果要取出多个可以用"/"分割
?>
原文地址:https://www.cnblogs.com/phpfans/p/2227821.html