在PHP中偶尔遇到字符串的压缩,比如一个长字符串,数据库开始设计的字段存不下,但是又不想改数据库字段存储长度,就可以用压缩的方式降低数据字段字符串的长度数量级,把几百个字符的字符串压缩到几十个字符。总结下来有以下几个:
压缩函数:gzcompress gzdeflate gzencode
与之对应的解压函数如下:
解压函数:gzuncompress gzinflate gzdecode
特别注意:gzdecode是PHP 5.4.0之后才加入的,使用的时候要注意兼容性问题。
gzcompress gzdeflate gzencode函数的区别在于它们压缩的数据格式不同:
gzcompress使用的是ZLIB格式;//压缩率居中
gzdeflate使用的是纯粹的DEFLATE格式;//压缩率最高 bzcompress ( $str , 9 );压缩率并列最高
gzencode使用的是GZIP格式;//压缩率最低
用一段代码测试一下看看
<?php $test_string="123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789"; var_dump($test_string);//原字符串长度 var_dump(gzcompress($test_string));//gzcompress压缩后 var_dump(gzdeflate($test_string));//gzdeflate压缩后 var_dump(gzencode($test_string));//gzencode压缩后 var_dump(gzuncompress(gzcompress($test_string)));//gzcompress压缩后再解压缩回来 var_dump(gzinflate(gzdeflate($test_string)));//gzdeflate压缩后再解压缩回来 var_dump(gzdecode(gzencode($test_string)));//gzencode压缩后再解压缩回来
运行结果: