Catatan Seorang Prajurit Kecil

Ikon

biarlah semua itu berjalan sesuai "skenario" NYA – jika kau telusuri, semua logika itu akan kau temukan

Zip dan Unzip File menggunakan dUnzip2


Kali ini saya akan memberikan sedikit tips and trick bagaimana melakukan zip dan unzip file menggunakan dUnzip2 library. Oke sebelum kita melakukan percobaan ini, ada beberapa hal yang harus kita persiapkan yaitu

Library dUnzip2 yang bisa teman-teman download dari www.phpclasses.org

PHP 5.0 atau lebih, Apache, dan webclient

Goreng pisang, kopi dan kacang….

Oke, mulai aja yah…

Setelah teman-teman mendownload librarynya, extract library tersebut kedalam satu folder dalam webroot misalnya “D:/Server/dunzip”. Setelah teman-teman melakukan extract file, akan terdapat beberapa file php dan file dokumentasi. Namun file yang penting untuk di includekan adalah “dUnzip2.inc.php” dan “dZip.inc.php”. nah….sekarang coba buka file sample yang disertakan pada paket library ini.

<?

require_once dirname(__FILE__).”/dUnzip2.inc.php”;

require_once dirname(__FILE__).”/dZip.inc.php”;

echo “<hr>”;

$zip = new dUnzip2(‘goez.zip’);

// Activate debug

$zip->debug = true;

// Unzip all the contents of the zipped file to a new folder called “uncompressed”

$zip->getList();

$zip->unzipAll(‘uncompressed’);

echo “Checking attributes for dUnzip2.gif<br>”;

$d = $zip->getExtraInfo(‘dUnzip2.gif’);

echo ($d[‘external_attributes1’]&1 )?”File is read only.”:”File is NOT read-only.”; echo “<br>”;

echo ($d[‘external_attributes1’]&2 )?”File is hidden.”:”File is NOT hidden.”; echo “<br>”;

echo ($d[‘external_attributes1’]&4 )?”File is system.”:”File is NOT system.”; echo “<br>”;

echo ($d[‘external_attributes1’]&16)?”It’s directory.”:”It’s NOT a directory.”; echo “<br>”;

echo ($d[‘external_attributes1’]&32)?”File is archive”:”File is NOT archive”; echo “<br>”;

// No secrets, do you agree?

?>

Ini adalah script yang digunakan untuk melakukan unzip file, perhatikan syntax $zip = new dUnzip2(‘goez.zip’) dimana goez.zip adalah nama (beserta path nya) untuk file zip yang akan kita unzip. Sedangkan $zip->unzipAll(‘uncompressed’) adalah proses unzip yang dilakukan oleh library, uncompressed adalah nama folder tempat penyimpanan file hasil unzip.

Sekarang coba kita lihat lagi pada script sample.php, disana terdapat script yang dinontakifkan (bagian atas), script ini adalah contoh untuk melakukan zip file, berikut ini adalah script nya

<?php

######## Create a ZIP file dinamically ########

# // Initialize dZip class

echo “Initializing dZip class…<br>”;

$newzip = new dZip(‘dUnzip2.zip’);

# // Create a folder in the ZIP, to store dZip and dUnzip files

echo “Creating folder to store both classes<br>”;

$newzip->addDir(‘class dZip’);

$newzip->addDir(‘class dUnzip2’);

# // Put the files

echo “Adding files to the zip<br>”;

$newzip->addFile(‘dUnzip2.inc.php’, ‘class dUnzip2/dUnzip2.inc.php’);

$newzip->addFile(‘documentation.txt’,’class dUnzip2/documentation.txt’);

$newzip->addFile(‘dZip.inc.php’, ‘class dZip/dZip.inc.php’);

$newzip->addFile(‘sample.php’, ‘sample.php’);

# // Save the new file

echo “Finalizing the created file<br>”;

$newzip->save();

?>

Pada script diatas terdapat syntax $newzip=new dZip(‘dUnzip2.zip’) yang artinya kita melakukan instant object dari class dZip, dUnzip2.zip adalah nama file zip yang akan dihasilkan (sebutkan juga pathnya jika kita ingin menyimpan di path yang lain). Berikutnya adalah syntax $newzip->addDir(‘class dZip’) syntax ini berarti kita akan menambahkan direktori pada file dUnzip2.zip, nama direktorinya adalah class dZip, begitupun untuk fungsi addDir dibawahnya, dan yang terakhir adalah syntax $newzip->addFile(‘dUnzip.inc.php’, ‘class dUnzip2/dUnzip2.inc.php’) parameter dUnzip.inc.php adalah file yang akan kita masukan kedalam direktori class dUnzip2 dan akan diberinama dUnzip2.inc.php.

Sesuai percobaan yang dilakukan oleh saya, ada sedikit syntax yang harus kita tambahkan pada file dUnzip2.inc.php, karena jika kita jalankan di system operasi Linux script ini masih bermasalah, perhatikan syntax berikut

zip_unzip_1

Perhatikan baris no 243 mkdir (“$targetDir/$str”), script ini tidak akan berjalan dengan baik ketika dijalankan di system operasi Linux, karena variable $str ada yang bernilai “.” Dan “..” sehingga linux tidak akan pernah mau untuk membuat folder dengan script “uncompressed/.” Atau “uncompressed/..” oleh karena itu ganti syntax tersebut dengan syntax berikut

zip_unzip_2

Pada bari 243 dan 244, kita tambahkan kondisional untuk mengecheck isi dari variable $str, jika isinya “.” Atau “..” maka kita cukup membuat direktori dengan variable $targetDir, namun jika isinya tidak sama dengan “.” Atau “..” maka kita akan membuat direktori dengan variable $targetDir/$str.

Oke itulah sedikit tips and trick dari saya, jika teman-teman bingung dalam melakukan prakteknya, silahkan hubungi saya di tco@tco-mmunity.com. Saya tunggu yah kritik, saran, cacian, makian dan sebagainya

Filed under: PHP Class, Programing

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: