在 PHP 中解压缩 Gzip 文件有几种方法,以下是常用的几种方式:
$compressedData = file_get_contents('compressed_file.gz');
$uncompressedData = gzdecode($compressedData);
file_put_contents('uncompressed_file.txt', $uncompressedData);
// 打开 gzip 文件
$gz = gzopen('compressed_file.gz', 'rb');
$uncompressedData = '';
// 读取并解压缩
while (!gzeof($gz)) {
$uncompressedData .= gzread($gz, 4096);
}
gzclose($gz);
file_put_contents('uncompressed_file.txt', $uncompressedData);
$uncompressedData = file_get_contents('compress.zlib://compressed_file.gz');
file_put_contents('uncompressed_file.txt', $uncompressedData);
确保你的 PHP 安装了 zlib 扩展(大多数情况下默认安装)
对于大文件,建议使用方法二或三,因为它们可以分块处理
如果遇到内存问题,考虑使用临时文件或流式处理
if (!function_exists('gzdecode')) {
// 处理没有 gzdecode 的情况
// 可以自定义实现或使用其他方法
}
选择哪种方法取决于你的具体需求、PHP 版本和服务器配置。方法三通常是最简洁的解决方案。