nasıl PHP bir HTTP yanıt sıkıştırılmış (ASCII) veri göndermek için

2 Cevap php

Ben bir istemci, bir tepki olarak veri gönderen bir hizmet yazıyorum.

Ben Metin (ASCII) verileri yolluyorum, fakat ben (standart sıkıştırma rutinleri herhangi uzing) ilk verileri sıkıştırmak istiyorum, ve sonra vb header () işlevini kullanarak, sunucuya geri sıkıştırılmış veri göndermek

Ben PHP için nispeten yeni duyuyorum bu yüzden veriler toplandıktan, ben biliyorum kullanıcıya bir HTTP yanıt (sıkıştırılmış) veri göndermek nasıl bilmek gerekir

Bu şimdiye kadar neye sahip pseudocode:

<?php
   function createResponse($args)
   {
      if ( ($data = fetch_data($args)) !== NULL)
      {
         /* Assumption is that $data is a string consisting of comma separated
            values (for the columns) and each "row" is sepeated by a CRLF
            so $data looks like this:

            18-Oct-2009, 100.2, -10.5, 15.66, 34.2, 99.2, 88.2, 'c', 'it1', 1000342\r\n
            19-Oct-2009, -33.72, 47.5, 24.76, 8.2, 89.2, 88.2, 'c', 'it2', 304342\r\n

            etc ..
         */


         //1. OPTIONAL - need to encrypt $data here (how?)
         //2. Need to compress (encrypted?) $data here (how?)
         //3. Need to send HTTP Status 200 OK and mime/type (zip/compresed here)
         //4. Need to send data

      }
      else
      {
         //5. Need to send HTTP error code (say 404) here
      }
   }
?>

Orada herhangi deneyimli PHP kodlama hangi Yukarıdaki açıklamalarımızın 1 -5 kullanmak için bana söyleyebilir misiniz?

2 Cevap

Sen ob_gzhandler (yani tarayıcı kendisi tarafından sıkıştırması) ile sıkıştırabilir veya ZipArchive ile arşiv veri ve gerçek zip dosyası gibi kullanıcıya aktarabilirsiniz -. Sen gibi bir şey gerekir:

// Headers for an download:
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="yourarchive.zip"');
header('Content-Transfer-Encoding: binary');
// load the file to send:
readfile('yourarchive.zip');

Dikkatli olun, başlıklar herhangi bir çıkıştan önce gönderilmesi gerekir.

http://pablotron.org/software/zipstream-php/: Hızlı bir Google veri sıkıştırılmış akışı oluşturmak için bu kütüphane çıktı

Umut olur.