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/

相关文章:

php - Drupal、mysql服务器设置

swift - 字符串到元组swift

java - 如何用随机字符串填充二维数组

php - mysql 查询没有给我正确的输出

mysql - MySQL 中的重复 Case 语句

PHP 返回数组或-1

mysql - 为一次性智能家居安装选择 TSDB

在 C 中连接具有特殊结尾字符的字符串

php - 文档存储在 phpmyadmin 与网站文件夹中?

php - 允许运行 php 脚本的多个实例