Bug #16341: ob_clean and ob_gzhandler dont work together

From: Date: Fri, 29 Mar 2002 09:12:27 +0000
Subject: Bug #16341: ob_clean and ob_gzhandler dont work together
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-3596@lists.php.net to get a copy of this message
From: lukas@edeal.de Operating system: linux,apache1319 PHP version: 4.1.2 PHP Bug Type: Output Control Bug description: ob_clean and ob_gzhandler dont work together this bug-report really is for latest CVS-HEAD as of 2002-03-29. using this script with latest cvs the output appears incorrect to me, b/c "barbarbar" is not encoded. if you remove ob_clean() everything is encoded just fine. <?php ob_start('ob_gzhandler'); echo "foo"; ob_clean(); echo "barbarbar"; ?> upon request this is logged to error_log: PHP Warning: String is not zero-terminated (~) (source: /src/cvs/php4-head/Zend/zend_execute_API.c:274) in /public_html/test/ob/test3.php on line 5 /public_html/test/ob/test3.php(5) : Warning - String is not zero-terminated (~) (source: /src/cvs/php4-head/Zend/zend_execute_API.c:274) using ob_gzhandler i quite expect a binary non zero-terminated string and this warning is not a surprise. but i am surprised about it being issued on ob_clean(); which, simplified, is just a reset doing text_length=0 on the active output buffers. it doesn't really have to touch and use the buffers to do that, does it? the above script sends the following response including content-encoding: gzip, but without actually encoding it: X-Powered-By: PHP/4.3.0-dev Content-Encoding: gzip Vary: Accept-Encoding Connection: close Transfer-Encoding: chunked Content-Type: text/html d4 <br /> <b>Warning</b>: String is not zero-terminated (~) (source: /src/cvs/php4-head/Zend/zend_execute_API.c:274) in <b>/public_html/test/ob/test3.php</b> on line <b>5</b><br /> barbarbar 0 for now i'm working around this by using a logic like this, proving that ob_clean works, but not with ob_gzhandler. <?php ob_start(); echo "foo"; ob_clean(); echo "barbarbar"; $b = ob_get_contents(); ob_end_clean(); ob_start('ob_gzhandler'); print $b; ?> regards, -lukas ~ -- Edit bug report at http://bugs.php.net/?id=16341&edit=1 -- Fixed in CVS: http://bugs.php.net/fix.php?id=16341&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=16341&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=16341&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=16341&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=16341&r=support Expected behavior: http://bugs.php.net/fix.php?id=16341&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=16341&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=16341&r=submittedtwice

« previous php.bugs (#3596) next »