Hangi sıkıştırma PHP kullanmak yöntemi?

3 Cevap php

Bir komut satırı PHP komut dosyası kullanarak ve Apache arkasında başka istemci tarafında bir: Ben iki PHP komut dosyalarını kullanarak taşımak için veri büyük miktarda var. Ben sunucu tarafında veri POST ve web sunucu ucunda kaydetmek için php :/ / input akışı kullanın. Herhangi bir bellek sınırlarını ulaşmasını önlemek için, veri, her bir POST isteği için 500KB parçalara ayrılır. Bütün bu iyi çalışır.

Şimdi, bant genişliği kaydetmek ve hızlandırmak için, ben göndermeden önce verileri sıkıştırmak ve diğer ucunda alındığında sıkıştırmasını istiyorum. Ben işi yapabilirsiniz işlev 3 çift buldum, ama bir kullanmak için hangi karar veremiyorum:

Fonksiyonların hangi çifti neden tavsiye ederim?

UPDATE: Ben sadece zlib SSS okuyun:

The gzip format (gzencode) gibi ad ve son değiştirilme tarihi gibi tek bir dosya hakkında dizin bilgileri, korumak için tasarlanmıştır. Öte yandan zlib biçimi (gzcompress) bellek ve iletişim kanal uygulamaları için tasarlanmış, ve çok daha kompakt bir başlık ve römork vardır ve gzip daha hızlı bir bütünlük denetimi kullanmaktadır.

3 Cevap

Bunların hepsi kullanılabilir. Kendi kendine yeten, çünkü gzencode() kullanmak istiyorsunuz; Eğer gzip komut satırı aracı kullanılan sanki çıktısı aynıdır.

Üç arasında gerçekten çok fark yoktur.

  • gzencode () gzip komut satırı aracı olarak aynı tamamen kendine yeten gzip formatını kullanır
  • gzcompress () ham ZLIB biçimini kullanır. Bu gzencode benzer ama daha az vb başlık verileri ile bunu akışı için tasarlanmıştır düşünüyorum.
  • gzdeflate () diğer formatlar ikisi için temel olan kendi üzerinde ham DEFLATE algoritması kullanır.

Ben PHP uzman değilim ve yöneltilen soruya cevap veremez, ama burada oluyor tahmin bir sürü, ve bulanık bilgi Sunulan olmak gibi görünüyor.

DEFLATE ZLIB GZIP ve başkaları tarafından kullanılan sıkıştırma algoritması adıdır. Teoride, GZIP alternatif sıkıştırma algoritmaları destekler, ancak pratikte, hiçbiri vardır.

"GZIP algoritması" gibi bir şey yoktur. GZIP DEFLATE algoritması kullanır ve sıkıştırılmış veri etrafında verileri çerçeveleme koyar. GZIP ile dosya, dosyanın zaman, bir CRC, hatta bir yorum gibi şeyler ekleyebilirsiniz. Bu meta olsa, isteğe bağlıdır ve birçok gzippers sadece ihmal.

ZLIB meta farklı, daha sınırlı sayıda ve belirli bir 2-byte başlık hariç, benzer.

Bu 1950, 1951 her IETF RFC olduğunu ve 1952.

"Gzip algoritması DEFLATE daha iyi sıkıştırır" demek sadece saçmalıktır. Hiçbir gzip algoritması vardır. Ve GZIP biçiminde kullanılan algoritma is DEFLATE.

Tüm yöntemler aralarındaki fark Başlıklarda çoğunlukla, esas olarak aynıdır. şahsen ben gzencode kullanmak istiyorum, bu gzip programı için bir komut çağırma eşit çıktı üretecektir.