相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說(shuō)明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢(xún)功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫(xiě)文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
詳解PHP數(shù)據(jù)壓縮、加解密(pack, unpack)
網(wǎng)絡(luò)通信、文件存儲(chǔ)中經(jīng)常需要交換數(shù)據(jù),為了減少網(wǎng)絡(luò)通信流量、文件存儲(chǔ)大小以及加密通信規(guī)則,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行雙向加解密以保證數(shù)據(jù)的安全。
PHP中實(shí)現(xiàn)此功能主要需要使用的函數(shù)主要是pack及unpack函數(shù)
pack
壓縮資料到位字符串之中。
語(yǔ)法: string pack(string format, mixed [args]...);
返回值: 字符串
本函數(shù)用來(lái)將資料壓縮打包到位的字符串之中。
a - NUL- 字符串填滿[padded string] 將字符串空白以 NULL 字符填滿
A - SPACE- 字符串填滿[padded string]
h – 十六進(jìn)制字符串,低“四位元”[low nibble first] (低位在前)
H - 十六進(jìn)制字符串,高“四位元”[high nibble first](高位在前)
c – 帶有符號(hào)的字符
C – 不帶有符號(hào)的字符
s – 帶有符號(hào)的短模式[short](通常是16位,按機(jī)器字節(jié)順序)
S – 不帶有符號(hào)的短模式[short](通常是16位,按機(jī)器字節(jié)排序)
n -不帶有符號(hào)的短模式[short](通常是16位,按大endian字節(jié)排序)
v -不帶有符號(hào)的短模式[short](通常是16位,按小endian字節(jié)排序)
i – 帶有符號(hào)的整數(shù)(由大小和字節(jié)順序決定)
I – 不帶有符號(hào)的整數(shù)(由大小和字節(jié)順序決定)
l– 帶有符號(hào)的長(zhǎng)模式[long](通常是32位,按機(jī)器字節(jié)順序)
L – 不帶有符號(hào)的長(zhǎng)模式[long](通常是32位,按機(jī)器字節(jié)順序)
N – 不帶有符號(hào)的長(zhǎng)模式[long](通常是32位,按大edian字節(jié)順序)
V– 不帶有符號(hào)的長(zhǎng)模式[long](通常是32位,按小edian字節(jié)順序)
f –浮點(diǎn)(由大小和字節(jié)順序決定)
d – 雙精度(由大小和字節(jié)順序決定)
x – 空字節(jié)[NUL byte]
X- 后面一個(gè)字節(jié)[Back up one byte](倒回一位)
unpack
解壓縮位字符串資料。
語(yǔ)法: string pack(string format, mixed [args]...);
返回值: 數(shù)組
本函數(shù)用來(lái)將位的字符串的資料解壓縮。本函數(shù)和 Perl 的同名函數(shù)功能用法完全相同。
案例一、pack實(shí)現(xiàn)縮減文件數(shù)據(jù)存儲(chǔ)大小
<?php //存儲(chǔ)整數(shù)1234567890 file_put_contents("test.txt", 1234567890);