MAN*_*OPE 10 php compression string
我用gzcompress压缩数组(json_encode($ arr),9).所以我使用json_encode将数组转换为字符串,然后使用gzcompress进行压缩.但我发现结果字符串的大小差别不大.在压缩大小为488 KB之前,压缩大小为442 KB之前.
有什么方法可以进一步压缩字符串吗?
提前致谢.
Law*_*one 16
我不确定你的数字是否正确,你可以使用gzdeflate而不是gzcompress,因为gzcompress会在输出中添加6个字节,在开头添加2个额外字节,在结尾添加4个额外字节.
一个简单的测试显示1756800 len字符串通过双重压缩压缩到99字节,如果压缩一次则压缩为5164字节.
<?php
$string = str_repeat('1234567890'.implode('', range('a', 'z')), 48800);
echo strlen($string); //1756800 bytes
$compressed = gzdeflate($string, 9);
$compressed = gzdeflate($compressed, 9);
echo '<br/>'.strlen($compressed).'<br/>';//99 bytes
echo gzinflate(gzinflate($compressed));
?>
Run Code Online (Sandbox Code Playgroud)
Cor*_*air 15
字符串压缩的好坏取决于要压缩的数据.如果它主要由随机数据组成,那么您将无法在规模上实现那么大的改进.有许多算法专门针对特定用途而设计.
您应该尝试确定要压缩的数据主要包含哪些内容,然后选择适当的压缩.
刚才我只能将你推荐给bzcompress,bzip的压缩率通常比gzip高.
归档时间: |
|
查看次数: |
25850 次 |
最近记录: |