ID:               25701
 Updated by:       [EMAIL PROTECTED]
 Reported By:      scottmacvicar at ntlworld dot com
 Status:           Open
 Bug Type:         Apache2 related
 Operating System: Windows XP SP1
 PHP Version:      4CVS-2003-09-30 (stable)
 New Comment:

btw. using AND here is wrong, you should use &&:

if (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false
AND !headers_sent())



Previous Comments:
------------------------------------------------------------------------

[2003-09-30 10:27:22] scottmacvicar at ntlworld dot com

PHP Version 4.3.4RC2-dev

Same result as mentioned above.

------------------------------------------------------------------------

[2003-09-30 10:19:14] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip

------------------------------------------------------------------------

[2003-09-30 09:56:26] scottmacvicar at ntlworld dot com

Description:
------------
Calling flush in Apache and Apache 2 produce different results.

Within Apache after calling flush you can still send headers as the
output buffer prevents it from actually being flushed.

Within Apache 2 after calling flush you can no longer send headers even
though headers_sent still returns false.


Reproduce code:
---------------
<?php

ob_start();

echo 'test';
flush();

$newtext = ob_get_clean();

if (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false
AND !headers_sent())
{
        header('Content-Encoding: gzip');
        $newtext = gzencode($newtext, 1);
}

header('Content-Length: ' . strlen($newtext));
echo $newtext;

?>

Expected result:
----------------
test

Actual result:
--------------
binary data


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=25701&edit=1

Reply via email to