ไฟล์ที่บีบอัดสามารถแยกหรือถอดรหัสได้โดยใช้ฟังก์ชัน gzread ของ PHP โค้ดตัวอย่างด้านล่าง:
ตัวอย่าง
$file_name = 'name_of/.dump.gz'; $buffer_size = 4096; // จำนวนไบต์ที่ต้องอ่านในเวลาเฉพาะ 4KB ที่นี่ $out_file_name = str_replace('.gz', '', $file_name); $file = gzopen($file_name, 'rb'); // เปิดไฟล์ในโหมดไบนารี $out_file = fopen($out_file_name, 'wb'); // ทำซ้ำจนถึง end-of-file ของไฟล์อินพุต while (!gzeof($file)) { fwrite($out_file, gzread($file, $buffer_size)); // อ่าน buffer-size ไบต์ } fclose($out_file); // ปิดไฟล์เมื่อเสร็จ gzclose($file);ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
ข้อมูลที่ถอดรหัสแล้วซึ่งแยกออกมาจากการแตกไฟล์ zip
เส้นทางไฟล์ zip เก็บในตัวแปร 'file_name' จำนวนไบต์ที่อ่านในแต่ละครั้งถูกกำหนดและเก็บใน 'buffer_size' ไฟล์เอาต์พุตจะไม่มี副檔名 .gz ดังนั้นชื่อไฟล์เอาต์พุตเก็บใน 'out_file_name'
'out_file_name' เปิดในโหมดเขียนไบนารีเพื่อเพิ่มเนื้อหาหลังอ่านจากไฟล์ zip ที่แยกแล้ว 'file_name' เปิดในโหมดอ่าน และเนื้อหาถูกอ่านด้วย 'gzread' และเนื้อหาที่แยกออกมาถูกเขียนลง 'out_file' ลูป while ทำงานเพื่อให้แน่ใจว่าเนื้อหาถูกอ่านจนจบไฟล์