Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ฉันจะแตกหรือคลายการบีบอัดไฟล์ gzip โดยใช้ php ได้อย่างไร


ไฟล์ซิปสามารถคลายซิปหรือคลายการบีบอัดได้โดยใช้ฟังก์ชัน gzread ของ PHP ด้านล่างนี้เป็นตัวอย่างโค้ดของสิ่งเดียวกัน -

ตัวอย่าง

$file_name = name_of/.dump.gz';
$buffer_size = 4096; // The number of bytes that needs to be read at a specific time, 4KB here
$out_file_name = str_replace('.gz', '', $file_name);
$file = gzopen($file_name, 'rb'); //Opening the file in binary mode
$out_file = fopen($out_file_name, 'wb');
// Keep repeating until the end of the input file
while (!gzeof($file)) {
   fwrite($out_file, gzread($file, $buffer_size)); //Read buffer-size bytes.
}
fclose($out_file); //Close the files once they are done with
gzclose($file);

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

The uncompressed data which is extracted by unzipping the zipped file.

เส้นทางของไฟล์ซิปถูกเก็บไว้ในตัวแปรชื่อ 'file_name' จำนวนไบต์ที่ต้องอ่านในแต่ละครั้งได้รับการแก้ไขและกำหนดให้กับตัวแปรชื่อ 'buffer_size' ไฟล์เอาต์พุตจะไม่มีนามสกุล .gz ดังนั้นชื่อไฟล์เอาต์พุตจึงถูกเก็บไว้ในตัวแปรชื่อ 'out_file_name'

'out_file_name' ถูกเปิดในโหมดไบนารีการเขียนเพื่อผนวกเนื้อหาเข้าไปหลังจากอ่านจากไฟล์ zip ที่แยกออกมา 'file_name' ถูกเปิดในโหมดอ่าน และเนื้อหาจะถูกอ่านโดยใช้ฟังก์ชัน 'gzread' และเนื้อหาที่แยกออกมาเหล่านี้จะถูกเขียนลงใน 'out_file' while loop จะทำงานเพื่อให้แน่ใจว่าเนื้อหาถูกอ่านจนจบไฟล์