#48994 [Asn->Csd]: zlib.output_compression does not ouput HTTP headers when set to a string value
ID: 48994
Updated by: jani@php.net
Reported By: jflatnes at vt dot edu
-Status: Assigned
+Status: Closed
Bug Type: Zlib Related
Operating System: Linux 2.6.29
PHP Version: 5.2.10
Assigned To: jani
New Comment:
This bug has been fixed in SVN.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Previous Comments:
------------------------------------------------------------------------
[2009-08-03 18:15:31] svn@php.net
Automatic comment from SVN on behalf of jani
Revision: http://svn.php.net/viewvc/?view=revision&revision=286751
Log: - Fixed bug #48994 (zlib.output_compression does not ouput HTTP
headers when set to a string value)
# also fixes bug #35936 (ini.zlib.output-compression Documentation :)
------------------------------------------------------------------------
[2009-07-29 01:13:07] apinstein at mac dot com
I ran into this issue today as well... but I have more to add.
Using PHP 5.3 + zlib 1.2.3
I *cannot* get compression + headers. I can get no compression, or
compression
w/o headers, but never "working" compression+headers.
I have tried:
httpd.conf:
php_flag zlib.output_compression On
php_admin_flag zlib.output_compression On
-> zip + no headers
php_flag zlib.output_compression true
php_admin_flag zlib.output_compression true
-> not zipped
In app.php:
ini_set('zlib.output_compression', true);
ini_set('zlib.output_compression', "On");
-> not zipped
------------------------------------------------------------------------
[2009-07-21 22:50:56] jani@php.net
There is something weird going on here, verified it now. Need to
investigate more tomorrow. To reproduce on command line:
# HTTP_ACCEPT_ENCODING=gzip gdb --arg php-cgi test.php
------------------------------------------------------------------------
[2009-07-21 19:03:10] jflatnes at vt dot edu
<?php var_dump(ini_set('zlib.output_compression', 'On')); ?>
Results in:
string(0) "" (meaning I had no previous setting for
zlib.output_compression, I believe)
---
I am coming to understand that the string 'On' doesn't behave the same
way in ini_set as in an ini file, as mentioned. The issue I see here is
that there are two options for zlib compression:
zlib.output_compression = false: no compression with no headers.
zlib.output_compression = true: compression with appropriate headers.
Passing a string to ini_set (other than the string '1') causes a third,
undocumented behavior:
zlib.output_compression = 'On': compression without the headers.
Those three states describe the behavior I'm seeing, and the third
state seems like a bug. If 'On' is an invalid setting, shouldn't the
compression simply not be activated? Am I thinking about this
correctly?)
------------------------------------------------------------------------
[2009-07-21 18:46:33] jani@php.net
Try this too:
<?php
var_dump(ini_set('zlib.output_compression', 'On'));
?>
Also note that using "On" or "Off" or such with ini_set() does NOT work
like they do when used in php.ini.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/48994
--
Edit this bug report at http://bugs.php.net/?id=48994&edit=1
Thread (6 messages)