mindplay / keypack
打包/解包整数和GUID键为较短的字符串
1.0.0
2016-08-15 13:37 UTC
Requires
- php: >=5.4
- mindplay/nbase: ^1
Requires (Dev)
- mindplay/testies: dev-master
This package is auto-updated.
Last update: 2024-08-25 19:42:28 UTC
README
此库将整数、UUID和GUID键打包为较短的字符串,例如用于用户界面URL。
使用方法
提供了三个类,IntPacker
、UUIDPacker
和GUIDPacker
,每个类都能打包/解包特定类型的ID。每个类的接口基本相同,但接受/返回不同类型的键。
以下是打包/解包UUID到较短的字符串的示例
$packer = new UUIDPacker(); echo $packer->pack("7eb6de1e-65ef-4fb7-baff-c0732c1c4614"); // => "py6dWN6dgKR8cGVz73zDiT" echo $packer->unpack("py6dWN6dgKR8cGVz73zDiT"); // => "7eb6de1e-65ef-4fb7-baff-c0732c1c4614"
您可以使用不同的表示法来打包键。默认的是legible
,它生成可读且长度合理的键 - 更多选项请见此处。
您还可以在打包键中添加冗余,以防止输入错误,并使猜测打包键更困难。
以下是打包整数键到base64
并添加4字节冗余的示例
$packer = new IntPacker('base64'); $packer->setRedundancy(4, 'super secret salt'); echo $packer->pack(123456); // => "7yg6HR" echo $packer->unpack("7yg6HR"); // => (int) 123456
请注意,如果冗余检查失败,unpack()
将返回null
。