为什么字符串应用gzcompress和gzuncompress具有相同的大小?

时间:2015-02-24 05:48:12

标签: php mysql string algorithm compression

我有一个包含字段的mysql表,但我没有权限修改表模式。

content varchar (255) not null

无论如何都要向此字段插入更大(大于255)的字符串。我不关心它的存储方式(压缩或编码)。如果它被压缩,我想检索未压缩的。

我尝试过的事情

gzcompress();

base64_encode();

<?php
$compressed   = gzcompress('asdasdwq3eryt238774284873246827364872687342873rweuydfgjshdbfdgfgs', 9);
$uncompressed = gzuncompress($compressed);
echo $compressed.'---'.strlen($compressed);
echo "<br />";
echo $uncompressed.'----'.strlen($uncompressed);

//BOTH ARE SAME IN SIZE
?>

1 个答案:

答案 0 :(得分:1)

gzcompress使用ZLIB数据格式压缩给定的字符串。有关ZLIB压缩算法的详细信息,请参阅文档ZLIB Compressed Data Format Specification version 3.3(RFC 1950)

您可以阅读有关ZLIB如何工作的一个解释:

  

http://www.zlib.net/feldspar.html

<?php
$compressed   = gzcompress(' This function compresses the given string using the ZLIB data format. For details on the ZLIB compression algorithm see the document "» ZLIB Compressed Data Format Specification version 3.3" (RFC 1950). ', 9);
$uncompressed = gzuncompress($compressed);
echo $compressed.'---'.strlen($compressed);
echo "<br />";
echo $uncompressed.'----'.strlen($uncompressed);

?>
相关问题