php pack/unpack学习

听过pack,但是不知道是做什么的,做websocket的时候,看到pack的代码,看不懂,抽空研究一下 pack的优势就是压缩长字符串,另外有一定的加密作用,因为pack的方式不告知调用方,是不知道的,个人觉得破解的难度应该不大,跟数据的复杂度成正比

代码:

// 我们打包一段有意义的字符串
// 名字:张三,年龄:10岁;
// 普通字符串形式
$str = 'name:张三,age:10';
// 普通字符串长度
echo strlen($str).PHP_EOL;

// pack打包 【a代表字符串,后面的数字代表长度 ,1个中文按照3个字节算;s代表短整数(能表示-128~127的数字),所有参数见文尾】
$pack = pack("a4a6a3s", 'name', '哈哈','age',10); // "a4a6a3s"代表打包的格式,也就是密钥了,解包的时候要按照同样的格式去解包

// 输出打包后二进制字符串
echo $pack.PHP_EOL;

// pack后二进制字符串长度
echo strlen($pack).PHP_EOL;

// unpack解包
print_r(unpack('a4field1/a6field2/a3field3/sfield4',$pack));// 解包格式跟打包的时候要一致,后面跟字段名,格式直接用“/”分割

执行结果:
在这里插入图片描述
我们看到长度被压缩了3个字节

~ 结束 ~

打包参数详见:https://www.runoob.com/php/func-misc-pack.html
这个是打包/解包的参数截图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值