Christian Kruse: (PHP) Stückweise mit GZip komprimieren

Beitrag lesen

你好 Candid,

Ich habe mir also überlegt, ob es nicht möglich wäre, immer ein Stück der
auszugebenden Seite zu komprimieren und dieses dann auszugeben, damit es
nicht den Hauptspeicher von PHP blockiert.

Dafür kannst du einerseits gz_flush() nutzen (in dem Fall wird der Puffer
geleert) oder, alternativ, die PHP daisychain stream wrappers:

  
header("Content-Encoding: gzip");  
  
$fp = gzopen("php://stdout","wb6");  
gzwrite($fp,"dies ist ein test!");  
// ...  
gzwrite($fp,"dies ist der zweite test!");  

Ich frage mich nun, ob das so überhaupt von Seiten GZip möglich ist und
wie groß diese Stücke sein müssen/dürfen.

Gzip kann streamend komprimieren, der Inhalt vom Ende muss am Anfang nicht
bekannt sein.

Kann ich einfach beliebig große Abschnitte einzeln komprimieren und diese
hintereinander ausgeben?

So ohne weiteres nicht, sie müssen alle aus demselben Gzip-Stream kommen.

再见,
克里斯蒂安

--
Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."
http://wwwtech.de/