网络通信、文件存储中经常需要交换数据,为了减少网络通信流量、文件存储大小以及加密通信规则,经常需要对数据进行双向加解密以保证数据的安全。
PHP中实现此功能主要需要使用的函数主要是pack及unpack函数 pack
压缩资料到位字符串之中。
语法: string pack(string format, mixed [args]...);
返回值: 字符串
本函数用来将资料压缩打包到位的字符串之中。
a - NUL- 字符串填满[padded string] 将字符串空白以 NULL 字符填满
A - SPACE- 字符串填满[padded string]
h – 十六进制字符串,低“四位元”[low nibble first] (低位在前)
H - 十六进制字符串,高“四位元”[high nibble first](高位在前)
c – 带有符号的字符
C – 不带有符号的字符
s – 带有符号的短模式[short](通常是16位,按机器字节顺序)
S – 不带有符号的短模式[short](通常是16位,按机器字节排序)
n -不带有符号的短模式[short](通常是16位,按大endian字节排序)
v -不带有符号的短模式[short](通常是16位,按小endian字节排序)
i – 带有符号的整数(由大小和字节顺序决定)
I – 不带有符号的整数(由大小和字节顺序决定)
l– 带有符号的长模式[long](通常是32位,按机器字节顺序)
L – 不带有符号的长模式[long](通常是32位,按机器字节顺序)
N – 不带有符号的长模式[long](通常是32位,按大edian字节顺序)
V– 不带有符号的长模式[long](通常是32位,按小edian字节顺序)
f –浮点(由大小和字节顺序决定)
d – 双精度(由大小和字节顺序决定)
x – 空字节[NUL byte]
X- 后面一个字节[Back up one byte](倒回一位) unpack
解压缩位字符串资料。
语法: string pack(string format, mixed [args]...);
返回值: 数组
本函数用来将位的字符串的资料解压缩。本函数和 Perl 的同名函数功能用法完全相同。 案例一、pack实现缩减文件数据存储大小
//创建索引文件
private function _create_index(){
$this->_file_index = fopen($this->_file_index_name, "wb+");//二进制存储需要使用b
if(!$this->_file_index)
throw new fileCacheException("Could't open index file:".$this->_file_index_name);
//创建存储文件
private function _create_data(){
$this->_file_data = fopen($this->_file_data_name, "wb+");//二进制存储需要使用b
if(!$this->_file_index)
throw new fileCacheException("Could't open index file:".$this->_file_data_name);