处理大文件时,可以使用gzopen()
函数来创建一个可读写的gzip压缩文件流,并在读写时进行逐块处理。以下是一个示例代码:
// 打开源文件和目标压缩文件
$input_file = 'large_file.txt';
$output_file = 'compressed_file.gz';
$input = fopen($input_file, 'rb');
$output = gzopen($output_file, 'wb');
// 逐块读取源文件并进行压缩
while (!feof($input)) {
$buffer = fread($input, 1024 * 1024); // 1MB 缓冲区
gzwrite($output, $buffer);
}
// 关闭文件流
fclose($input);
gzclose($output);
echo '压缩完成!';
这段代码会打开一个大文件,逐块读取内容并压缩到目标文件中。可以根据实际情况调整缓冲区大小。