Zip Arşivleme ve Çıkarma İşlemleri

Zip Arşivleme ve Çıkarma İşlemleri

Zip arşivleme ve çıkarma işlemleriyle ilgili detaylı bilgi Dosyalarınızı kolayca arşivleyin ve paylaşın Çoklu dosya seçeneği ile zamanınızı önemli ölçüde tasarruf edin Zip arşivlerini hızlı ve güvenli bir şekilde çıkarın Hemen deneyin!

Zip Arşivleme ve Çıkarma İşlemleri

Zip dosyaları, birden fazla dosya veya klasörü tek bir dosya halinde sıkıştırarak depolamak ve taşımak için kullanılır. Bu sayede, dosya transferi daha hızlı ve kolay bir şekilde gerçekleştirilir ve depolama alanı açısından tasarruf sağlanır. PHP dilinde de zip arşivleme ve çıkarma işlemleri yapmak için kullanabileceğiniz birçok fonksiyon bulunmaktadır.

Zip dosyası oluşturma işlemi için zip_create() fonksiyonu kullanılabilir. Bu fonksiyon, yeni bir zip dosyası oluşturur. Var olan bir zip dosyasına dosya eklemek için ise zip_add() fonksiyonu kullanılabilir.

Zip dosyasından içerik çıkarma işlemi için zip_open() fonksiyonu kullanılabilir. Bu fonksiyon, zip dosyasını açar. Ardından zip_read() fonksiyonu kullanılarak açılan zip dosyası okunabilir. Zip dosyası içindeki dosya ya da klasörlerin içeriğine erişmek için zip_entry_open() fonksiyonu kullanılabilir. Açılan klasör veya dosyanın içeriği de zip_entry_read() fonksiyonu kullanılarak okunabilir.

Zip dosyasının sunucuya gönderilmesi için zip_close() fonksiyonu ile açılan zip dosyası kapatılabilir. Ardından, header() fonksiyonu kullanılarak dosyanın zip dosyası olarak indirilmesi sağlanabilir.


Zip Dosyası Oluşturma

Zip arşivleme ve çıkarma işlemleri, dosyaların toplu halde saklanmasını ve taşınmasını kolaylaştıran bir yöntemdir. Bu işlemleri PHP ile yapmak oldukça kolaydır. Burada zip dosyası oluşturma işlemine odaklanacağız. Zip dosyası oluşturmak için kullanabileceğiniz bazı PHP fonksiyonları aşağıda sıralanmıştır:

Fonksiyon Açıklama
zip_create() Yeni bir zip dosyası oluşturma fonksiyonu
zip_add() Var olan bir zip dosyasına dosya ekleme fonksiyonu

zip_create() fonksiyonu ile yeni bir zip dosyası oluşturabilirsiniz. Bu fonksiyon, yeni bir zip dosyası oluşturmak için gerekli olan handle'ı (bir dosya veya bir sunucu kaynağına işlem yapma yetkisi veren bir belirteç) döndürür. zip_add() fonksiyonunu kullanarak, oluşturulan zip dosyasına dosyalar ekleyebilirsiniz.

Bir zip dosyasının içerisine oluşturulan yeni dosyaları eklerken, dosya yolunu da belirtmeniz gerekiyor. Eğer aynı isimde bir dosya zaten varsa, bu dosyayı yenisiyle değiştirir. Ayrıca, zip dosyasına alt dizinler eklerken, alt dizin yolu da eklenmelidir. Bu yöntem, birden fazla dosyayı tek seferde eklemeniz için oldukça kullanışlıdır.


zip_create()

fonksiyonu, PHP programlama dili ile zip dosyası oluşturma işleminde kullanılır. Bu işlem için öncelikle ziparchive sınıfını kullanarak yeni bir zip dosyası oluşturulur. Ardından, dosya ismi ve dosyanın oluşturulacağı dizin belirtilir. Bu iki parametre fonksiyona gönderilir ve yeni bir zip dosyası oluşturulur.

Örneğin:

<?php// Yeni bir zip dosyası oluşturma$zip = new ZipArchive;if ($zip->open('yeni_zip_dosyasi.zip', ZipArchive::CREATE) === TRUE) {    echo 'Yeni zip dosyası oluşturuldu!';    $zip->close();} else {    echo 'Hata: Zip dosyası oluşturulamadı.';}?>

Bu örnekte ZipArchive::CREATE özelliği ile yeni bir zip dosyası oluşturulur ve dosyanın adı "yeni_zip_dosyasi.zip" olarak belirlenir. Bu şekilde basit bir şekilde zip dosyası oluşturmamız mümkündür. Fonksiyonun bu örnekteki kullanımı oldukça basit ve anlaşılırdır. Eğer zip dosyası oluşturulursa, "Yeni zip dosyası oluşturuldu!" yazısı ekranda görüntülenir. Aksi halde ise "Hata: Zip dosyası oluşturulamadı." yazısı ekranda görüntülenir.


zip_add()

zip_add() fonksiyonu, var olan bir zip dosyasına dosya eklemek için kullanılır. Bu fonksiyon, zip dosyasında verilen dosya adıyla belirtilen bir dosyayı ekler. Bu işlem için önce zip_open() fonksiyonu kullanılarak, zip dosyası açılır. Daha sonra zip_add() fonksiyonu kullanılarak, dosya zip dosyasına eklenir.

Bir örnekle açıklayacak olursak, aşağıdaki kod zip_add() fonksiyonu kullanılarak, var olan bir zip dosyasına yeni bir dosya eklemeyi gösterir:

$zip = zip_open('existing_zipfile.zip');$dosya_icerigi = 'Bu dosya zip dosyasına eklendi.';$dosya_adi = 'yeni_dosya.txt';$entry = zip_entry_new();zip_entry_setdata($entry, $dosya_icerigi);zip_entry_setname($entry, $dosya_adi);zip_add($zip, $entry);zip_close($zip);

Bu kodda, "existing_zipfile.zip" isimli zip dosyası açılır ve "yeni_dosya.txt" isimli dosya, "Bu dosya zip dosyasına eklendi." içeriğiyle birlikte zip dosyasına eklenir. zip_close() fonksiyonu kullanılarak, zip dosyası tekrar kapatılır.

Eğer eklenmek istenen dosya, sunucuda yer alan bir dosya ise bu dosyayı zip dosyasına eklemek için "file_get_contents()" fonksiyonu kullanılabilir. Örneğin:

$zip = zip_open('existing_zipfile.zip');$dosya_icerigi = file_get_contents('eklenecek_dosya.txt');$dosya_adi = 'eklenecek_dosya.txt';$entry = zip_entry_new();zip_entry_setdata($entry, $dosya_icerigi);zip_entry_setname($entry, $dosya_adi);zip_add($zip, $entry);zip_close($zip);

Bu kodda, "eklenecek_dosya.txt" isimli dosya file_get_contents() fonksiyonuyla okunarak, zip dosyasına eklenir. Diğer kodda olduğu gibi zip dosyası tekrar kapatılır.

zip_add() fonksiyonu, var olan bir zip dosyasına kolaylıkla yeni dosyalar eklemek için kullanılır ve PHP ile zip işlemleri yapmak isteyenlerin ihtiyaç duyacağı bir fonksiyondur.


Zip Dosyası Çıkarma

Zip dosyaları arşivleme işleminde evrensel kullanım sağladığı gibi, içeriğin çıkartılması işleminde de oldukça işlevseldir. İşte, PHP ile zip dosyasından içerik çıkarma işlemi için kullanabileceğiniz fonksiyonlar:

Fonksiyon Açıklama
zip_open() Çıkartılacak zip dosyasını açar.
zip_read() Açılan zip dosyasını okur.
zip_entry_open() Zip dosyası içindeki bir dosya veya klasörü açar.
zip_entry_read() Zip dosyasının içindeki dosya veya klasör hakkında bilgi okur.

zip_open() fonksiyonu, zip dosyasını açmak için kullanılır. zip_read() fonksiyonu, açılan zip dosyasını okutmak ve zip_entry_open() fonksiyonu, dosya veya klasörlerin içeriğini okumak için kullanılır. zip_entry_read() fonksiyonu, açılan dosya veya klasör hakkında bilgi okutmak için kullanılır.

Bu fonksiyonlar sayesinde bir zip dosyasından istediğiniz dosya veya klasörleri belirleyip kolayca içeriğini çıkartabilirsiniz.


zip_open()

zip_open() fonksiyonu, zip dosyasını açmak için kullanılır. Bu fonksiyon, açılan zip dosyasının tanımlayıcısını döndürür ve bu tanımlayıcı, başka fonksiyonların da kullanımı için gereklidir.

zip_open() fonksiyonunun parametreleri şunlardır:

  • path: Açılacak olan zip dosyasının yolu

Örnek olarak:

$zip = zip_open("example.zip");

if ($zip) { //zip dosyası başarılı bir şekilde açıldı //işlemler burada belirtilir zip_close($zip);} else { //zip dosyası açılamadı}

Yukarıdaki örnekte, zip_open() fonksiyonu kullanılarak "example.zip" isimli zip dosyası açılmış ve açılan zip dosyasının tanımlayıcısı $zip isimli değişkene atanmıştır. Ardından, açılan zip dosyasının başarıyla açıldığını kontrol eden bir if bloğu yer almaktadır.

Zip dosyasının açılması ve içeriklerinin okunması işleminin tamamlanmasından sonra, zip_close() fonksiyonu kullanılarak açılan zip dosyası kapatılmalıdır.


zip_read()

Zip dosyasını açtıktan sonra, zip dosyasının içeriğine erişmek için kullanabileceğiniz PHP fonksiyonu zip_read() fonksiyonudur. Bu fonksiyon, zip dosyasındaki tüm dosya ve klasörleri bir dizi olarak döndürür.

Aşağıdaki örnekte, zip_open() fonksiyonu kullanılarak zip dosyası açıldıktan sonra zip_read() fonksiyonu kullanılarak zip dosyasının içeriği okunuyor.

$zip = zip_open("example.zip");if ($zip) {  while ($zip_entry = zip_read($zip)) {    // Dosya/klasör işlemleri yapılabilir  }}

Yukarıdaki örnek kodda, önce zip_open() fonksiyonu kullanarak zip dosyası açılmış. Ardından zip_read() fonksiyonu kullanılarak zip dosyasının içeriği okunmuştur. Daha sonra, dosya ve klasör işlemleri için gerekli olan kodlar yazılabilir.

Bu fonksiyon kullanılarak zip dosyasının içeriği hakkında bilgi almak mümkündür. Örneğin, zip dosyasındaki toplam dosya sayısı, dosyaların boyutları gibi bilgiler alınabilir. Bu bilgiler, web uygulamalarında kullanılacak dosya yükleme işlemlerinde faydalı olabilir.


zip_entry_open()

Zip dosyaları içerisindeki dosya ya da klasörleri açmak için PHP'de kullanabileceğiniz bir fonksiyon olan zip_entry_open(), açılmış bir zip dosyası içerisindeki belirli bir dosya ya da klasör için bir tanıtıcı döndürür. Bu tanıtıcı çıkarılacak dosyayı veya klasörü işaret eder.

zip_entry_open() fonksiyonu 3 adet parametre alır. İlk parametre olarak_zip arşivi tanıtıcısını_ alır. İkinci parametre olarak ise, açılacak dosyanın adını alır. Son parametre ise, dosyanın açılabilmesi için hangi modda açılacağıdır (r, w vb.).

Örneğin, aşağıdaki kod parçası, bir zip dosyası içinde bulunan "example.txt" dosyasını açan zip_entry_open() fonksiyonunu kullanır:

```$zip = zip_open('example.zip');if ($zip) { while ($zip_entry = zip_read($zip)) { $entry_name = zip_entry_name($zip_entry); if ($entry_name === 'example.txt') { $entry_size = zip_entry_filesize($zip_entry); $entry_content = zip_entry_read($zip_entry, $entry_size); echo $entry_content; break; } } zip_close($zip);}```

Yukarıdaki örnekte, açılan zip dosyası üzerinde döngü kurulmuş ve zip_read() fonksiyonu ile dosya veya klasörler okunmuştur. Eğer "example.txt" isimli bir dosya bulunursa, zip_entry_filesize() fonksiyonu ile dosya boyutu alınır ve zip_entry_read() fonksiyonu ile dosya içeriği okunur ve ekrana yazdırılır. Sonrasında zip_close() fonksiyonu ile açılan zip dosyası kapatılır.

zip_entry_open() fonksiyonu, zip dosyalarındaki dosyalara ve klasörlere erişim sağlamayı kolaylaştırır ve dosyaların çıkarılmasını veya içeriğinin incelenmesini mümkün kılar.


zip_entry_read()

Zip dosyasının içeriğini okumak için kullanabileceğiniz bir PHP fonksiyonu olan zip_entry_read(), açılan zip dosyasındaki belirtilen dosya veya klasörün içeriğini okur. Bu fonksiyon, zip_entry_open() fonksiyonu ile açılan dosyaların içeriklerinin okunmasını sağlar.

zip_entry_read() fonksiyonu, tek seferde belirtilen boyutta veri okuyabilir. Bu boyut, ikinci parametre olarak fonksiyona verilir. Eğer fonksiyon ikinci parametre olarak 0 değeri alırsa, tüm dosya içeriği okunur. Ancak büyük dosyaların tamamını tek seferde okumanın performansı düşürebileceği unutulmamalıdır.

Parametre Açıklama
zip_entry zip_entry_open() fonksiyonu ile açılmış olan dosyanın zip_entry nesnesi
boyut Okunacak verinin boyutu, varsayılan değeri 1024'dir. Eğer boyut 0 olarak belirtilirse, tüm dosya içeriği okunur

Kod örneği:

      $zip = zip_open('dosya.zip');    $entry = zip_read($zip);    if(zip_entry_open($zip, $entry, 'r')) {        $icerik = zip_entry_read($entry, zip_entry_filesize($entry));        echo $icerik;        zip_entry_close($entry);    }    zip_close($zip);  

Bu örnek kod, dosya.zip isimli bir zip dosyası içindeki ilk dosyanın içeriğini okur ve ekranda görüntüler. Uygun şekilde belirlenerek kullanılan boyut parametresi sayesinde, dosya içeriği tümüyle okunur ve ekrana yazdırılır.


Zip Dosyasını Sunucuya Gönderme

Zip dosyası oluşturma ve çıkarma işlemleri genellikle bilgisayarlarda kullanılır, ancak bu işlemler aynı zamanda sunucular üzerinde de gerçekleştirilebilir. Sunucuya gönderilen bir zip dosyası, sunucuda yeni bir klasör oluşturulmasını sağlayarak içindeki dosyaların doğrudan sunucuya yüklenmesini kolaylaştırır.

Bu işlem için PHP'de kullanabileceğiniz birkaç farklı fonksiyon bulunmaktadır. Bunlar arasında en önemlileri `zip_close()` ve `header()` fonksiyonlarıdır.

`zip_close()` fonksiyonu, açılan bir zip dosyasını kapatır. Bu fonksiyon, bir zip dosyası oluşturulduktan sonra kullanılmalıdır.

`header()` fonksiyonu ise, dosyanın tarayıcıda zip dosyası olarak indirilmesini sağlar. Bu fonksiyonu kullanarak, sunucuya yüklenen bir zip dosyasını kolaylıkla kullanıcılara indirebilirsiniz.

Aşağıda örnek bir kod parçası verilmiştir. Bu kod, sunucuda bulunan bir resim dosyasını zip dosyası olarak oluşturur ve tarayıcıda zip dosyası olarak indirilmesini sağlar.

```php//Dosya adı ve yolu belirlenir$dosya_adi = "resim.jpg";$dosya_yolu = "resimler/";$zip_adi = "resimler.zip"; //Yeni bir zip dosyası oluşturulur$zip = new ZipArchive;$zip->open($zip_adi, ZipArchive::CREATE); //Zip dosyasına dosya eklenir$zip->addFile($dosya_yolu . $dosya_adi, $dosya_adi); //Zip dosyası kapatılır$zip->close(); //Dosya indirilirheader('Content-Type: application/zip');header('Content-Disposition: attachment; filename="' . $zip_adi . '"');header('Content-Length: ' . filesize($zip_adi));readfile($zip_adi);```

Bu kod parçasında, `ZipArchive::CREATE` seçeneği ile yeni bir zip dosyası oluşturulur ve `addFile()` fonksiyonu ile zip dosyasına belirtilen dosya eklenir. Son olarak `header()` fonksiyonları kullanılarak, zip dosyasının tarayıcıda indirilmesi gerçekleştirilir.

Zip dosyasının sunucuya gönderilmesi işlemi bu kadar kolay! Artık sunucularınızda zip dosyalarını kolaylıkla oluşturabilir, dosyalarınızı hızlı ve güvenli bir şekilde sunuculara yükleyebilirsiniz.


zip_close()

zip_close() fonksiyonu, bir zip dosyasını kapatmak için kullanılır. Bu fonksiyon, zip dosyasının tamamlandığı zaman çağrılmalıdır. Dosya kapatılmadığında, zip dosyası bozulabilir ve dosya görüntülenemeyebilir. Bu nedenle, zip dosyasını kapatmaya yönelik olarak zip_close() fonksiyonu çok önemlidir.

Bu fonksiyon, sadece açılan bir zip dosyasını kapatmayı sağlar. Diğer zip işlemleri ile ilgili bir işlem yapmaz. Fonksiyon kullanıldığında, açılan zip dosyası kapatılır ve sistem belleği boşaltılır.

Örneğin;

$zip = zip_open("example.zip");

//Zip işlemleri gerçekleştirilir

zip_close($zip);

Yukarıdaki örnekte, önce bir zip dosyası açılır ve ardından işlemler gerçekleştirilir. zip_close() fonksiyonu, açılan zip dosyasını kapatmak ve sistem belleğini boşaltmak için çağrılır.

Zip dosyası açıldıktan sonra, işlemler tamamlandıktan hemen sonra zip_close() fonksiyonu çağrılmalıdır. Bu işlem, zip dosyasının bozulmasını önler ve olası bir başka hatanın önüne geçer.


header()

fonksiyonu, zip dosyasını indirmek için kullanılan bir fonksiyondur. Bu fonksiyon, dosyayı tarayıcıya zip dosyası olarak iletir ve indirme işlemini sağlar. Bu şekilde, dosyayı sunucudan indirme sırasında kullanıcının işlemi tamamlaması gerekmez.

Bu fonksiyon, HTTP başlıklarını kullanarak sunucudan istek yapar. Başlıklar, tarayıcının dosyayı nasıl işleyeceğini belirler. Bir başlık, dosyanın zip dosyası olarak indirilmesini sağlayabilir.

Örnek olarak şu PHP kodu kullanılabilir:

Bu kod, zip dosyasının ismini ve boyutunu belirler ve dosyanın zip dosyası olarak indirilmesini sağlar.

header() fonksiyonu, sunucuya gönderilecek olan dosyanın dosya türüne göre değiştirilebilir. Örneğin, jpeg dosyaları için "Content-Type: image/jpeg" kullanılabilir.

Bu şekilde, bir zip dosyasının sunucuya gönderilmesi ve dosyanın indirilmesi işlemleri basit bir şekilde gerçekleştirilebilir.