Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中压缩字符串的最佳方法_Php_String_Compression - Fatal编程技术网

PHP中压缩字符串的最佳方法

PHP中压缩字符串的最佳方法,php,string,compression,Php,String,Compression,我使用gzcompress(json_encode($arr),9)压缩数组。 所以我使用json_encode将数组转换为字符串,然后使用gzcompress进行压缩。 但是我找不到结果字符串的大小有多大差异。 压缩前大小为488KB,压缩后大小为442KB 有没有办法进一步压缩字符串 提前感谢。字符串的压缩效果取决于要压缩的数据。如果它主要由随机数据组成,那么在大小上就不会有那么大的改进。有许多算法是为特定用途而设计的 您应该尝试确定要压缩的数据主要包括哪些内容,然后选择适当的压缩 刚才我只

我使用gzcompress(json_encode($arr),9)压缩数组。 所以我使用json_encode将数组转换为字符串,然后使用gzcompress进行压缩。 但是我找不到结果字符串的大小有多大差异。 压缩前大小为488KB,压缩后大小为442KB

有没有办法进一步压缩字符串


提前感谢。

字符串的压缩效果取决于要压缩的数据。如果它主要由随机数据组成,那么在大小上就不会有那么大的改进。有许多算法是为特定用途而设计的

您应该尝试确定要压缩的数据主要包括哪些内容,然后选择适当的压缩


刚才我只能告诉你,bzip通常比gzip有更高的压缩率。

我不确定你的数字是否正确,但是你可以使用
gzdeflate
而不是
gzcompress
,因为
gzcompress
在输出中增加了6个字节(开头多2个字节,结尾多4个字节)

一个简单的测试显示,一个1756800长度的字符串通过双重压缩压缩到99字节,如果压缩一次,则压缩到5164字节

$string=str_repeat('1234567890'。内爆('',范围('a','z')),48800);
echo strlen($string)//1756800字节
$compressed=gzdeflate($string,9);
$compressed=gzdeflate($compressed,9);
echo strlen(压缩)//99字节
echo gz充气(gz充气($compressed));