在 PHP 中解压缩 Gzip 文件有几种方法,以下是常用的几种方式:
方法一:使用 gzdecode() 函数
$compressedData = file_get_contents('compressed_file.gz');
$uncompressedData = gzdecode($compressedData);
file_put_contents('uncompressed_file.txt', $uncompressedData);
方法二:使用 zlib 扩展
// 打开 gzip 文件
$gz = gzopen('compressed_file.gz', 'rb');
$uncompressedData = '';
// 读取并解压缩
while (!gzeof($gz)) {
$uncompressedData .= gzread($gz, 4096);
}
gzclose($gz);
file_put_contents('uncompressed_file.txt', $uncompressedData);
方法三:使用 file_get_contents...
传统的JS压缩(删除注释,删除多余空格等)提供的压缩率有时还是不尽不意,幸亏现在的浏览器都支持压缩传输(通过设置http header的Content-Encoding=gzip),可以通过服务器的配置(如apache)为你的js提供压缩传输,或是appfuse中使用的GZipFilter使tomcat也提供这种能力
现在的问题是这种动态的压缩会导致CPU占用率过高,现在我想到的解决辨法是通过提供静态压缩(就是将js预先通过gzip.exe压缩好)
一.下面描述在tomcat中的应用
1.将prototype.js通过gzip.exe压缩保存成prototype.gzjs2.设置header,我编写了一个简单的AddHeadersFilter来将所有以gzjs结尾的文件增加设置header Content-Encoding=gzip
1 w...