#29544 [Fbk->NoF]: not flush stdout in pipe command which ob_handler and with-apxs2 configuration
| From: | php-bugs at lists dot php dot net | Date: | Sat, 19 Mar 2005 00:00:08 +0000 |
| Subject: | #29544 [Fbk->NoF]: not flush stdout in pipe command which ob_handler and with-apxs2 configuration | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-77326@lists.php.net to get a copy of this message | ||
ID: 29544
Updated by: php-bugs@lists.php.net
Reported By: suguru at sak dot iis dot u-tokyo dot ac dot jp
-Status: Feedback
+Status: No Feedback
Bug Type: Output Control
Operating System: Linux, Solaris
PHP Version: 5.0.0
New Comment:
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
Previous Comments:
------------------------------------------------------------------------
[2005-03-06 20:53:59] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2004-08-06 10:41:47] suguru at sak dot iis dot u-tokyo dot ac dot jp
Description:
------------
PHP version: 5.0.0, CVS(2004-08-06 06:30)
PHP5 configuration: '--with-apxs2' and '--mbstring' (when
'output_handler=mb_output_handler')
php.ini: specify 'output_handler=ob_gzhandler' or
'output_handler=mb_output_handler'
Apache version: 2.0.50
OS and compiler: Linux(debian)+gcc-3.3.4, Solaris8+gcc-3.3.3
In above configuration, php(cli version) does not flush tail of stdout
when output to pipe(|).
point:
1. PHP is cli version (not apache2handler, but it is configurated with
'--with-apxs2'.)
2. Only when 'output_handler' is specified in php.ini.
No effect ob_start()/ob_end_*() in PHP script.
3. Only when Unix pipe(|) output. Normal output is correct.
solution:
call flush() at the exit point of script.
Reproduce code:
---------------
----test.php----
<?php
$dat="01234567890123456789012345678901234567890123456789\n";
for( $l = 0; $l < 100; ++$l ){
print sprintf( "%2d ", $l ) . $dat;
}
?>
---- ./php.ini ----
use php.ini-recommended adding 'output_handler=ob_gzhandler' or
'output_handler=mb_output_handler'.
---- execute ----
./sapi/cli/php -c ./php.ini test.php | tail -5
Expected result:
----------------
95 01234567890123456789012345678901234567890123456789
96 01234567890123456789012345678901234567890123456789
97 01234567890123456789012345678901234567890123456789
98 01234567890123456789012345678901234567890123456789
99 01234567890123456789012345678901234567890123456789
Actual result:
--------------
67 01234567890123456789012345678901234567890123456789
68 01234567890123456789012345678901234567890123456789
69 01234567890123456789012345678901234567890123456789
70 01234567890123456789012345678901234567890123456789
71 0123456789012345678901234567890123456789012
note: not exactly same result in case of diffent OS and so on.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=29544&edit=1