Re: gzip-based html compression

From: Date: Wed, 28 Jun 2000 19:09:40 +0000
Subject: Re: gzip-based html compression
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-3644@lists.php.net to get a copy of this message
Hi Sebastian! On Wed, 28 Jun 2000, Sebastian Bergmann wrote: > "GZip-Encoding". Packing speed is about 200-500 Kb/sec on > Pentium-200. The unpacking takes virtually no time. It works on both > Apache and MS IIS." > > I understand that the "major" browsers (Netscape Navigator (Mozilla?), > MS Internet Explorer, ...) support the transport of gzip-compressed HTML > pages through HTTP. > Sadly I was not able to find information on this standard on w3.org. There was once a post on php3 mailing list about it, ans since then I am using it on my server. For static pages it's just a simple mod_rewrite trick. Check for accepted gzip encoding and rewrite the link to the .html.gz file. This is highly efficient for big html files (w/ lots of tables and formatting.) > I'd like to write, if possible, a small library in PHP that sends the > output of PHP scripts gzip-compressed, if the visitor's browser supports > this. Gzip compressing support exists for some time (just add --with-zlib when configuring), but for string compressing just from a recent date (iirc). So you may be able to use the trick for dynamic content too. You may enable output buffering from php.ini for all files and add an append file like: [gzip.php] $html = gzcompress(ob_get_contents()); ob_end_clean(); header ("Content-Type: text/html"); header ("Content-Encoding: x-gzip"); print ($html); ob_end_flush(); *BUT*, unfortunately, PHP's content header is stubborned enough to get in our way every time. First time, you cannot get rid of it (I did filed a bug-rep) second, it insists to be the last one sent, so the "encoding" won't be seen :( e.g. HTTP/1.1 200 OK Date: Wed, 28 Jun 2000 19:06:19 GMT Server: Apache/1.3.12 (Unix) PHP/4.0.1 X-Powered-By: PHP/4.0.1 Content-Encoding: x-gzip Connection: close Content-Type: text/html <gzip-content-here> I'm just staring myself at mod_php4.c but I dunno what to change anyway :) -- teodor

« previous php.general (#3644) next »