php 字符串与二进制字符串的转换pack() unpack()

变量里可以存储二进制数

';  
echo BinToStr("1110000 1101000 1110000 111001001011101010001100 111001101010110010100001 111001011011110010000000 111001011000111110010001 111011111011110010011010 1110111 1110111 1110111 101110 1110000 1101000 1110000 110010 101110 1100011 1100011");  
?>  

PHP处理二进制数据需要用到pack()和unpack()。

pack()用来将数据转成二进制数据,使用方法如下:

pack(format,args+)
format 必需。规定在包装数据时所使用的格式。
args+ 可选。规定被包装的一个或多个参数。

pack(“LL”, 0,1);
pack(“C”, a);

unpack() 函数从二进制字符串对数据进行解包。,它接受2个参数,使用方法如下:

unpack(format,data)
format 必需。规定在解包数据时所使用的格式。
data 可选。规定被解包的二进制数据。

$arr = unpack(“Chead”, $binstream); //读取第1个字节
$arr = unpack(“Chead/C3string/C4number”, $binstream); //读取8个字节,用斜杠可以分隔

pack()和unpack()函数的第一个参数表如下

a:NULL填充的字节串
A:空格填充的字节串
h:十六进制数,低四位字节优先
H:十六进制数,高四位字节优先
c:有符号字符
C:无符号字符
s:有符号短整型(总是16位,机器字节序)
S:无符号短整型(总是16位,机器字节序)
n:无符号短整型(总是16位,大尾字节序)
v:无符号短整型(总是16位,小尾字节序)
I:有符号整型(机器相关大小和字节序)
I:无符号整型(机器相关大小和字节序)
l:有符号长整型(总是32位,机器字节序)
L:无符号长整型(总是32位,机器字节序)
N:无符号长整型(总是32位,大尾字节序)
V:无符号长整型(总是32位,小尾字节序)
f:浮点数(机器相关大小和表示)
d:双精度数(机器相关大小和表示)
x:空字节
X:倒退一个字节
@:用NULL填充绝对位置

你可能感兴趣的:(php 字符串与二进制字符串的转换pack() unpack())