Hi there everyone,

since upgrading to 4.3.4, I have a problem with the
zlib.output_compression feature in PHP. In effect, I cannot use this
feature as I get binary output in my browser (tested with both
Mozilla and IE6). It seems the only way I can let PHP generate gzip
encoded output is using the ob_gzhandler in php.ini.

The scripts I use do not contain ob_start() functions, etc. The
problem also occurs with the standard phpinfo() 'script'. From
phpinfo(), I can see my php.ini file is read correctly (yes, I
checked the FAQ). Starting point for my php.ini file is the php 4.3.4
php.ini-recommended settings file. More system information is
included at the bottom of this message.

When I try the following setup in php.ini:
output_handler = 
zlib.output_compression = on
zlib.output_handler =

I get garbled, binary data in my browser. Inspecting the HTTP headers
(in Mozilla), I see both the "Vary: Content-encoding" and
"Content-encoding: gzip" headers are not present. Experience with
other gzip modules (such as apache's mod_gzip) suggests these headers
should be present. I suspect PHP correctly generates gzip-encoded
output, yet does not include the correct headers. In older PHP
versions (4.3.2, 4.3.3) I had no such trouble. The problem occurs on
both Apache 1.3.29 and 2.0.48 starting with PHP version 4.3.4.


As a workaround, I now use the following setup in php.ini:
output_handler = ob_gzhandler
zlib.output_compression = off
zlib.output_handler = 

This works correctly, sending gzip-encoded output using the correct
headers. Compression is active (and effective, clearly visible
checking the page size for phpinfo()). My only problem with this
workaround, is that I now have several scripts that no longer
correctly generate CSV and/or PDF files for IE clients. As crappy as
some may find IE, I'm afraid I cannot work arround that browser,
which is why I would like to use the former setup.


I know the CSV/PDF generating scripts should never trust the
site-wide output handlers, but this seems to be a problem of PHP as
well. Can anyone reproduce this to see whether this is a setup
problem or worthy of a bug report?

Thanks in advance,

Rogier Krieger


Tested systems:
Apache 1.3.29 as well as 2.0.48
NetBSD 1.6.1 as well as FreeBSD 4.8
PHP 4.3.4 with modules:
+ zlib, gettext, gd, domxml, xslt, pdflib,
+ openssl, mcrypt, mhash,
+ sockets, snmp, ftp, imap,
+ pgsql, mysql and ldap

PHP configurations are similar on all 3 machines.

My php.ini for NetBSD/apache2:
[ http://www.iverdahl.net/pub/php.ini ]

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to