PHP ile ZİP Dosyası Oluşturma

PHP ile ZİP Dosyası Oluşturma

PHP ile ZİP işlemlerini gerçekleştirmek için PHP 5.2.0 ve üzeri sürüme sahip olmak gerekmektedir. Bu sürümün içerisinde yer alan ZipArchive kütüphanesi ile .zip dosyası kolaylıkla oluşturulmaktadır. ZİP dosyası oluşturulurken hedef olarak belirtilen dosya yada dosyalar ZİP arşivine dahil edilerek saklanmaktadır.

ZipArchive metodları

Arşivleme işleminde kullanılacak olan metodlar, aşağıda yer alan tablodaki gibidir. Tabloda yer alan metodların karşılıklarına göz atarak üstlendiği görevin ne olduğunu anlayabilirsiniz.

ParametrelerAçıklama
ZipArchive::CREATEYeni bir zip dosyası oluşturur.
ZipArchive::openZip arşivini açar.
ZipArchive::addFileBelirtilen dosyayı zip arşivine ekler.
ZipArchive::closeArşivi kapatır.

Yukarıda yer alan metodları kullanarak PHP ile ZİP işlemini gerçekleştirelim.

PHP ile Zip İşlemi

PHP ile ZİP işlemini gerçekleştirmek için öncelikle kütüphaneyi çağırmalıyız. Sonrasında ZİP dosyasının adını belirleyip içerisine eklenecek olan dosyaları belirliyoruz.

// Kütüphaneyi çağırıyoruz
$zip        = new ZipArchive();
// Zip adını belirliyoruz
$zipAdi     = getcwd()."/zipAdi.zip";
// Zip oluşturuyoruz.
$zipOlustur = $zip->open($zipAdi, ZIPARCHIVE::CREATE);
// Zip oluşturma işlemi gerçekleşmişse
if( $zipOlustur === TRUE ){
    // Anadizinde yer alan test.txt dosyası eklenecek
    $zip->addFile("test.txt");
    echo "zipAdi.zip dosyası oluşturuldu 
 test.txt dosyası eklendi.";
    $zip->close();
}else{
    $zip->close();
    echo "dosya oluşturulamadı!";
}

Zip oluşturma işleminin gerçekleştirildiği değişkenden gelen değer TRUE olduğunda içerisine belirlenen dosyaların eklenmesini sağlıyoruz. Dosyaları arşive eklemek için ZipArchive::addFile işlevini kullanıyoruz. Eklenecek dosyayı parametre olarak addFile() içerisinde bildiriyoruz. Zip işlemleri burada son bulduğu için ZipArchive::close ile çalışmayı sonlandırıyoruz.

Bir önceki yazım olan Sıfırdan İleriye PHP Eğitim Seti başlıklı makalemi de okumanızı öneririz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir