處理大文件時,可以使用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 '壓縮完成!';
這段代碼會打開一個大文件,逐塊讀取內容并壓縮到目標文件中。可以根據實際情況調整緩沖區大小。