[PHP] Membuat dan Mengextract File Zip dengan PHP
Oh, sudah lama nggak buat artikel tentang php dan kali ini saya akan sedikit memberikan cara membuat file Zip dan mengextractnya dengan PHP.
Pertama buat file zip.php dan isi dengan script berikut
<?php /** * Class CZipArchive * Digunakan untuk membuat dan mengextract file zip * * @dibuat Dida Nurwanda * @email dida_n@ymail.com * @blog didanurwanda.blogspot.com */ class CZipArchive extends ZipArchive { public function create($fileName='', $overwrite=false, $fileAndDir='') { if(file_exists($fileName) && !$overwrite) { return false; } if(is_array($fileAndDir)) { $vFile=array(); foreach($fileAndDir as $file) { if(file_exists($file)) { $vFile[]=$file; } } if(count($vFile)) { if($this->open($fileName, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { return false; } foreach($vFile as $file) { $this->addFile($file,$file); } $this->close(); return file_exists($fileName) ? true : false; } else { return false; } } else { if($this->open($fileName, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { return false; } $this->addFile($fileAndDir,$fileAndDir); $this->close(); return file_exists($fileName) ? true : false; } } public function extract($to='', $file='') { if($this->open($file)===true) { $this->extractTo($to); $this->close(); return true; } else { return false; } } }
Kemudian buat contoh file untuk penggunaannya, saya menggunakan nama index.php
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Zip Dengan PHP - Dida Nurwanda</title> </head> <body> <center><h1>Create dan Extract Zip dengan PHP</h1></center> <center><h4>Dida Nurwanda</h4></center> <center><a href="http://didanurwanda.blogspot.com">didanurwanda.blogspot.com</a></center> <br /><br /> <a href="?type=create">Create ZIP</a><br /> <a href="?type=extract">Extract Zip</a><br /> <?php require_once dirname(__FILE__).'/zip.php'; $zip=new CZipArchive; // membuat zip if(isset($_GET['type']) && $_GET['type']=='create') { $return=$zip->create('data.zip',true,array('zip.php','index.php')); if($return) { echo "<center><h3><i>Anda berhasil membuat file ZIP</i></h3></center>"; } else { echo "<center><h3><i>Anda gagal membuat file ZIP</i></h3></center>"; } } elseif(isset($_GET['type']) && $_GET['type']=='extract') { $return=$zip->extract('./folder','data.zip'); if($return) { echo "<center><h3><i>Anda berhasil mengextract file ZIP</i></h3></center>"; } else { echo "<center><h3><i>Anda gagal mengextract file ZIP</i></h3></center>"; } } ?> </body> </html>
Sedikit menjelaskan tentang Class yang saya buat, untuk fungsi create($fileName='', $overwrite=false, $fileAndDir='') sebagai berikut :
- $fileName itu merupakan nama file Zip yang akan anda buat,
- $overwrite berfungsi untuk menimpa file Zip yang telah ada, default false
- $fileAndDir merupakan nama file yang akan dibuat Zip, pada variable ini anda dapat memasukan banyak file sekaligus dengan array atau hanya satu file dengan string
- $to merupakan direktory tempan mengextract file Zip
- $file merupakan nama file Zip yang akan di extract
Berikut penampakan contoh programnya
mas saya mau nanyak tentang artikelnya...
BalasHapusUntuk ekstrak langsung file zip yg isinya excel ke sql bisa gak tuh yah...?
bisa
Hapus