Beli Modem Wavecom Untuk SMS Gateway. FREE E-book Gammu + FREE Ongkos kirim !!
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[Info Lengkap...]

Membuat Script PHP untuk Kompresi File ZIP


September 27th, 2008 | by rosihanari | Cetak Artikel Ini Cetak Artikel Ini

Dengan PHP, kita bisa membuat aplikasi sederhana untuk kompresi file ke dalam bentuk ZIP.

Mengapa kita harus bisa membuat script untuk kompresi file ini, toh di hampir setiap komputer sudah ada software kompresi, meskipun hasil crack-crack an :-) . Untuk menjawab ini, saya ambil contoh penerapannya. Kalau Anda merupakan adsense publisher, maka setiap interval waktu tertentu Anda akan dikirimi file report earning dalam format CSV yang terkompresi dalam bentuk ZIP file. Apakah setiap pegawai Google Adsense melakukan kompresi setiap laporannya dan mengirimkan satu-persatu file report ini ke semua publishernya secara manual via email? Saya yakin tidak… Mekanisme ini dibuat secara otomatis dengan menggunakan program atau script. Nah… ini salah satu contoh saja alasan mengapa kita juga harus bisa membuat aplikasi untuk kompresi file ZIP via web.

Alasan yang lain… misalkan Anda orang yang ‘baik’ dan tidak ingin menggunakan software crack-crack an untuk kompresi, maka Anda bisa membuat sendiri aplikasinya dengan PHP :-)

Pada tutorial ini akan dibahas bagaimana cara membuat script PHP untuk melakukan kompresi file ZIP. Skenario untuk studi kasus yang diambil di sini adalah: user nantinya akan memilih file yang akan dikompresi melalui form, setelah itu ia mengklik tombol submit, dan hasilnya akan diperoleh file kompresi ZIP dari file yang dipilih tadi. Simple bukan…

Oya… untuk PHP yang dijalankan di Windows OS, pastikan Anda telah mengaktifkan php_zip.dll di file php.ini. Bagaimana caranya? Caranya adalah buka terlebih dahulu file php.ini, bila Anda menggunakan AppServ caranya klik START > AppServ > Configuration Server > PHP Edit The php.ini Configuration File. Selanjutnya cari baris extension=php_zip.dll. Pastikan tidak ada tanda titik koma (;) di depan baris tersebut. Bila sudah, simpan kembali php.ini, dan restart Apache (Web Server).

Nah… sekarang kita mulai membuatnya.

Pertama-tama kita buat form untuk memilih file yang akan dikompresi.

<form enctype="multipart/form-data" action="kompresi.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
Pilih file yang akan dikompresi <input name="file" type="file" />
<input type="submit" name="submit" value="Submit" />
</form>

Selanjutnya kita buat script kompresi.php nya.


$namaFile = $_FILES['file']['name'];
$tmpName = $_FILES['file']['tmp_name'];

$fp = fopen($tmpName, 'r');
$isiFile = fread($fp, filesize($tmpName));
fclose($fp);

$zip = new ZipArchive();
$fileKompresi = $namaFile.".zip";

$kompresi = $zip->open($fileKompresi, ZIPARCHIVE::CREATE);
if ($kompresi)
{
$zip->addFromString($namaFile, $isiFile);
$zip->close();
echo "Kompresi Sukses";
}
else echo "Kompresi Gagal";
?>
[/sourcecode]

Keterangan:

  • Baris ke-3 digunakan untuk mendapatkan nama file yang akan dikompresi. Nama file ini nanti akan digunakan untuk memberi nama file hasil kompresi (lihat baris ke-11).
  • Baris ke-4 digunakan untuk menyimpan temporary file yang akan dikompresi. File temporary ini nantinya akan dibaca isinya (baris ke-6 s/d 8).
  • Baris ke-10 digunakan untuk membuat obyek ZipArchive.
  • Baris ke-13 digunakan untuk membuat file kompresi.
  • Baris ke-14 melakukan pengecekan, bila file kompresi berhasil dibuat maka isi file asli yang dibaca akan dimasukkan ke dalam file kompresi. Sedangkan bila gagal, muncul pesan kegagalan.

Dari contoh ini, Anda bisa kembangkan sendiri bagaimana jika kita ingin mengkompresi beberapa file menjadi satu.

OK... mudah-mudahan info bermanfaat.

VN:F [1.9.3_1094]
Rating: 9.5/10 (2 votes cast)
Membuat Script PHP untuk Kompresi File ZIP, 9.5 out of 10 based on 2 ratings
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?



Beberapa artikel terkait


Share this article on:

Kata kunci: PHP -


Ada 14 komentar dalam artikel ini.

  1. aina_awa says:

    tlg donk tutorial ttg cms n klo bs ma cthny di upload-in..mksih y..

  2. gigih says:

    Mas saya mau tanya klo pingin buat skript php untuk mengkompres zip, tetapi yang di kompres folder atau directorinya bisa tidak ya?klo yang di kompres file jelas udah banyak baca tutorialnya, termasuk blog ini.tolong saya dibantu ya mas..trimakasih :)
    [rq=4395,0,blog][/rq]* Home * Contact & Tukar Link Membuat Website Gratis Kurang Dari 15 Menit

  3. ya bener setuju, file kompresi dengan zip memang dibutuhkan terutama untuk jenis kompresi secara online.
    .-= Script Gratis´s last blog ..Tips meningkatkan traffic web dengan promosi offline =-.

  4. toshi says:

    mas aku dah nyoba n hasilx mantepp.
    tapi klo klo kita pgn hasil kompresannya berada pada satu file yg akan di kompres gmn ya??

    thx. mhon d jawab.

  5. teguh says:

    Hallo
    P. Rosihan Ari

    kembali saya bertanya saya ada buat

    dropdown menu nama negara

    item label indonesia value 10

    yang di hitung value nya dan nama negara juga di tampilkan saat ada perintah echo gimana ya caranya

    heheheh banyak nanya biar ngak sesat di jalan

    makasih Pak Rosihan Ari

    thanx teguh

  6. rosihanari says:

    @teguh: untuk dropdown menu atau combo memang yang terbaca di bagian valuenya saja mas. untuk menampilkan value dan keterangannya, harus ada sedikit script tambahannya. Keterangan negara dapat dimunculkan dengan membuat query untuk mendapatkan nama negaranya berdasarkan value id nya, kalau data negaranya anda simpan di tabel database khusus. Tapi kalo gak disimpan di database list negaranya, cukup Anda gunakan IF saja. IF (id == ’10′) $country = “INDONESIA”; ELSE …

  7. gatot wibowo says:

    pak mohon bantuan script php untuk merubah dari file office ke file swf. trims

  8. yunus says:

    thanks mas,, cara diatas bisa..
    tapi klo untuk lebih dari satu file di compress pake zlib gimana ??

  9. rosihanari says:

    @yunus: coba pakai ini mas:

    <?php
    $zip = new ZipArchive;
    if ($zip->open('test.zip') === TRUE) {
        $zip->addFile('file1', 'file1');
        $zip->addFile('file2', 'file2');
        $zip->addFile('file3', 'file3');
        $zip->addFile('file4', 'file4');
        $zip->close();
        echo 'sukses';
    } else {
        echo 'gagal';
    }
    ?>
  10. yunus says:

    hhe.. sebenernya udah bisa,,
    btw… thanks banget om…hhe

  11. Sonny says:

    file hasil kompresinya ada di mana ya?…. gimana kalo sy mau ambil file hasil kompresinya (*.zip) dan diletakkan dalam suatu folder menggunakan move_uploaded_file

  12. rosihanari says:

    @sonny: file hasil kompresi nantinya akan diletakkan di folder yang sama dengan script php nya mas.

  13. bahri says:

    Mas bantuin saya donk.. saya mo kompres field2 dari tabel ke zip gimana caranya? apa saya harus membuat file dulu lalu dikompres ke zip. makasih sebelumnya

  14. hardi says:

    Pak Ari,
    scriptnya bisa jalan, cuma setiap kompres PDF file atau JPG file di belakang nama filenya ada .pdf atau .jpg, shg waktu mau buka filenya ga bisa Pak Ari, mohon bimbingannya pak. saya sudah coba str_replace di nama fila nya ga bisa juga. trims Pak sebelumnya



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word