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

标签 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
?>

最佳答案

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);

?>

关于php - 为什么字符串在应用 gzcompress 和 gzuncompress 时具有相同的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28688975/

相关文章:

c++ - 如何在 C++ 字符串中找到第一个字符

MySQL Regex,需要以任意顺序匹配短语

javascript - 在 jQuery DataTables 1.10.2 中按 DD/MM/YYYY 对日期列进行排序

php - 网站上传后出现错误500(没有.htaccess,没有WP)

php - 如何以分钟分辨率从数据库中选择最高值

MYSQL SUM 用于不同表中的两个多列

Java : Compare, 标记和解释 Java 中的 HTML 文本

java - 从给定标签的第一次出现到最后一次出现的字符串剪切

php - 如果这本书有多个作者,我怎样才能阻止 php 显示两次

javascript - 谷歌地图邮政编码绘制在错误的地方?