Zaman zaman web uygulamarında zip’li dosyalar oluşturmak veya zip’li dosyaları açmak gerekebiliyor. Örneğin tek seferde birden fazla resim dosyasının upload edilmesi gereken durumlarda zip dosyası kullanmak kullanıcıya büyük kolaylık sağlayabilir. Veyahut php ile bir word veya excel dökümanı olarak oluşturduğunuz uzun bir raporu kullanıya zip’lenmiş halde sunmak da yararlı olabilir. Buna benzer durumlarda php ile zip dosyaları oluşturmak veya zip dosyalarını açmak için taklalar atmaya gerek yok. İnternette çok güzel hazırlanmış sınıf (class)’lar var. dUnzip de bunlardan bir tanesi… Bakalım dUnzip ile bu iş ne kadar kolaymış.
dUnzip sınıfı
Brazilyalı bir programcı tarafından yazılmış olan bu sınıfı bu bağlantıdan bilgisayarınıza indirebilirsiniz. Bu sınıfın çalışabilmesini için php‘nin ZLib desteği olması gerekiyor. İyi haber şu: ZLib desteğin pek çok sunucuda zaten açık halde
Fakat siz yine de Zlip desteğinin açık olup olmadığını phpinfo() öğrenebilirsiniz. Eğer bu destek açık değilse gerekli bilgiyi php.net/zlip sayfasından alabilirsiniz.
dUnzip sınıfı içerisinde 2 adet ana dosya bulunmaktadır. Bunlar dZip.inc.php ve dUnzip2.inc.php dosyalarıdır. Eğer zip’li dosya oluşturmak istiyorsanuz dZip.inc.php dosyasını, daha önceden oluşturulmuş bir zip’li dosyayı açmak istiyorsanız da dUnzip2.inc.php dosyasını php sayfanıza dahil etmeniz (include) gerekiyor. Şimdi basit bir örnek yapalım.
Zil’li dosya oluşturmak
Örneğin resim_1.png, resim_2.jpg ve resim_3.gif isminde üç adet resim dosyamız olsun. Bu resimlerin hepsini rezimler.zip isminde zip’li bir dosyaya dönüştürmemiz gerektiğinde şöyle bir kod kullanmanız yetecektir.
-
<?php
-
include("dzip.inc.php");
-
$zip = new dZip("resimler.zip");
-
$zip->addFile("resim_1.png", "resim_1.png");
-
$zip->addFile("resim_2.jpg", "resim_2.jpg");
-
$zip->addFile("resim_3.gif", "baska_isimde_resim.gif");
-
$zip->save();
-
?>
Zip’li dosya oluşturduğumuz için 2. satırda dZip.inc.php dosyasını sayfaya dahil ettik. 3. satırda ise dUnzip sınıfını kullanıma hazırlıyoruz. Aynı zamanda sonuçta oluşacak olan Zip’li dosyanın ismini belirtiyoruz.
4, 5 ve 6 nolu satırlarda Zip’li dosyanın içerisine kaydedilecek dosyaları belirtiyoruz. addFile() fonksiyonuna ik tane parametre bildiriyoruz. İlk parametre sıkıştırmak istediğimiz dosyanın gerçek ismi iken, ikinci parametre ise Zip’li dosyanın içerisinde görünecek olan ismi. Ve bundan sonra 7. satırda dosyaların, Zip’li dosya içerisine kayıt edilmesini sağlıyoruz.

Oluşturduğumuz resimler.zip dosyasının içeriği
Zil’li dosyayı açma
Şimdi de biraz önce oluşturduğumuz rezimler.zip dosyasını nasıl açabiliriz, nasıl içerisindekileri çıkartabiliriz ona bakalım.
-
<?php
-
include("dUnzip2.inc.php");
-
$zip = new dUnzip2("resimler.zip");
-
$zip->unzipAll("resimlerim");
-
?>
Zip’li bir dosyayı açacağımız için 2. satırda dUnzip2.inc.php dosyasını sayfaya dahil ettik. 3. satırda ise dUnzip sınıfını kullanıma hazırlıyoruz. Aynı zamanda çıkartmak istediğimiz Zip’li dosyanın ismini belirtiyoruz. 4. satırda ise Zip’li dosyanın içindekilerin hepsini resimlerim isimli bir klasör içerisine çıkartılmasını belirtiyoruz. Tek tek dosya çıkartmak isterseniz $zip->unzip("baska_isimde_resim.gif", "resim_3.gif"); şeklinde bir kod kullanabilirsiniz.
created by EBURHAN
