相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
詳解PHP數(shù)據(jù)壓縮、加解密(pack, unpack)
網(wǎng)絡(luò)通信、文件存儲中經(jīng)常需要交換數(shù)據(jù),為了減少網(wǎng)絡(luò)通信流量、文件存儲大小以及加密通信規(guī)則,經(jīng)常需要對數(shù)據(jù)進行雙向加解密以保證數(shù)據(jù)的安全。
PHP中實現(xiàn)此功能主要需要使用的函數(shù)主要是pack及unpack函數(shù)
pack
壓縮資料到位字符串之中。
語法: string pack(string format, mixed [args]...);
返回值: 字符串
本函數(shù)用來將資料壓縮打包到位的字符串之中。
a - NUL- 字符串填滿[padded string] 將字符串空白以 NULL 字符填滿
A - SPACE- 字符串填滿[padded string]
h – 十六進制字符串,低“四位元”[low nibble first] (低位在前)
H - 十六進制字符串,高“四位元”[high nibble first](高位在前)
c – 帶有符號的字符
C – 不帶有符號的字符
s – 帶有符號的短模式[short](通常是16位,按機器字節(jié)順序)
S – 不帶有符號的短模式[short](通常是16位,按機器字節(jié)排序)
n -不帶有符號的短模式[short](通常是16位,按大endian字節(jié)排序)
v -不帶有符號的短模式[short](通常是16位,按小endian字節(jié)排序)
i – 帶有符號的整數(shù)(由大小和字節(jié)順序決定)
I – 不帶有符號的整數(shù)(由大小和字節(jié)順序決定)
l– 帶有符號的長模式[long](通常是32位,按機器字節(jié)順序)
L – 不帶有符號的長模式[long](通常是32位,按機器字節(jié)順序)
N – 不帶有符號的長模式[long](通常是32位,按大edian字節(jié)順序)
V– 不帶有符號的長模式[long](通常是32位,按小edian字節(jié)順序)
f –浮點(由大小和字節(jié)順序決定)
d – 雙精度(由大小和字節(jié)順序決定)
x – 空字節(jié)[NUL byte]
X- 后面一個字節(jié)[Back up one byte](倒回一位)
unpack
解壓縮位字符串資料。
語法: string pack(string format, mixed [args]...);
返回值: 數(shù)組
本函數(shù)用來將位的字符串的資料解壓縮。本函數(shù)和 Perl 的同名函數(shù)功能用法完全相同。
案例一、pack實現(xiàn)縮減文件數(shù)據(jù)存儲大小
<?php //存儲整數(shù)1234567890 file_put_contents("test.txt", 1234567890);