PHP. NET GZipStream sınıfı ile sıkıştırılmış bir dosyayı açmak miyim?

5 Cevap

Ben güncellemeleri ve lisans için PHP tabanlı bir SOAP web hizmeti ile iletişim kuran bir C # uygulaması var.

Ben şimdi yazılım aracılığıyla otomatik olarak hataları ve tracelogs göndermek kullanıcılar için bir geri besleme sistemi üzerinde çalışıyorum. Ben yayınlanan bir önceki soruya dayanarak, ben bir web hizmeti (en az yapılandırma ile düzgün çalışması için en muhtemel) bunu yapmak için en iyi yol olacağını hissettim.

Benim şu anki düşünce yerleşik gzip sıkıştırma, metin dosyasını sıkıştırmak base64 dönüştürmek, web hizmetine göndermek ve PHP komut dosyası ikili dönüştürmek ve veri sıkıştırmasını var. NET kullanmaktır.

PHP GZipStream ile sıkıştırılmış veri sıkıştırmasını, ve eğer öyleyse, nasıl yapabilirim?

5 Cevap

Ben aslında bu çalıştı. GZipStream çalışmaz. Öte yandan,. NET tarafında DeflateStream ile sıkıştırarak ve PHP tarafında gzinflate ile açılıyor işi. Sizin kilometre değişebilir ...

Http düzeyinde kütüphanelerde (istemci ve sunucu) uygular, http has support for gzip-compression, bu durumda herhangi bir şeyi el sıkıştırmak için hiçbir neden olmazdı. Eğer başka bir girişim önce bu zaten oluyor olmadığını kontrol etmelisiniz.

Evet, PHP, ya da başlıkları olmadan, GZIP sıkıştırılmış dizeleri sıkıştırılmış olabilir.

  • gzdecode GZIP dosya biçimi için (yani, gzip ile uyumlu)
  • gzinflate "ham" DEFLATE biçimi için
  • gzuncompress ZLIB biçimi için (bazı başlık bilgisi olmadan GZIP biçimi)

Ben. NET GZipStream aşina olduğum gibi istediğiniz ediyorum hangisi emin bilmiyorum. Bu ZLIB biçimi "akış" biçiminde bir tür olduğu gibi, küçük bir gzuncompress gibi geliyor, ama üçünü deneyin.

Sunucu, web istekleri kabul yana gerçekten herhangi bir müşteri yerine sadece her zaman tahmin ve Gzip Sıkıştırma daha GZIP kodlamasını kabul olmadığını belirlemek için HTTP başlıklarını kontrol edilmelidir.

PHP istemci gzip yapabiliyorsa itll başlığını ayarlamak ve sonra kod göre tepki verecektir ve doğru olanı yapmak. Varsayarsak veya tahmin tesis müşteri yeteneklerini öğrenmek için kodu için sağlanan bir kötü bir seçimdir.

Ben C # sıkıştırmasını / sıkıştırmak için nasıl gösterir Geçenlerde yayınlanan bir makale yazdı. Ben hemen hemen aynı senaryo için kullanılır. Ben sunucu istemci günlük dosyaları aktarmak istedim ve genellikle oldukça büyük. Ben sıkıştırmasını yöntemini kullanmak böylece Ancak benim durumumda benim Webcoder. NET'te koşuyordu. PHP çalışacak bir yöntem denilen gzdecode desteklemiyor gibi görünüyor ama.

http://coding.infoconex.com/post/2009/05/Compress-and-Decompress-using-net-framework-and-built-in-GZipStream.aspx