处理大文件时,可以使用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 '压缩完成!';
这段代码会打开一个大文件,逐块读取内容并压缩到目标文件中。可以根据实际情况调整缓冲区大小。