File nén có thể giải nén hoặc giải nén bằng hàm gzread của PHP. Dưới đây là ví dụ mã:
Ví dụ
$file_name = 'name_of/.dump.gz';
$buffer_size = 4096; // số byte đọc mỗi lần, 4KB ở đây
$out_file_name = str_replace('.gz', '', $file_name);
$file = gzopen($file_name, 'rb'); // Mở file ở chế độ nhị phân
$out_file = fopen($out_file_name, 'wb'); // Mở file ghi nhị phân
// Lặp đến hết file đầu vào
while (!gzeof($file)) {
fwrite($out_file, gzread($file, $buffer_size)); // Đọc buffer-size byte
}
fclose($out_file); // Đóng file khi xong
gzclose($file);
Kết quả
Dữ liệu giải nén được trích xuất bằng cách giải nén file zip.
Đường dẫn file nén lưu trong biến 'file_name'. Số byte đọc mỗi lần cố định gán cho 'buffer_size'. File đầu ra không có đuôi .gz, nên tên file đầu ra lưu trong 'out_file_name'.
'out_file_name' mở ở chế độ ghi nhị phân để ghi nội dung sau khi đọc từ file zip giải nén. 'file_name' mở ở chế độ đọc, nội dung đọc bằng 'gzread' và ghi vào 'out_file'. Vòng lặp while chạy để đảm bảo đọc đến hết file.