Doc #25304 [Com]: Implicit flush output in CLI falsely documented
| From: | lildurk25304 at gmail dot com | Date: | Wed, 01 Sep 2021 18:53:32 +0000 |
| Subject: | Doc #25304 [Com]: Implicit flush output in CLI falsely documented | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-19149@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=25304&edit=1
ID: 25304
Comment by: lildurk25304 at gmail dot com
Reported by: eru@php.net
Summary: Implicit flush output in CLI falsely documented
Status: Closed
Type: Documentation Problem
Package: Documentation problem
Operating System: Linux RH 8.0
PHP Version: 4CVS-2003-08-28 (stable)
Block user comment: N
Private report: N
New Comment:
Lil Durk is a private agency dedicated to providing responsible access to legal cannabis for adults
aged 19 and older. Weâre an exclusively online retailer and wholesaler for recreational
cannabis and a trusted source for information about cannabis and cannabis-related issues. We believe
our work is meaningful and we take pride in our mandate to promote the socially responsible use of
legal cannabis. https://lildurk.com/
Previous Comments:
------------------------------------------------------------------------
[2004-02-26 11:52:19] nlopess@php.net
This was a PHP problem.
It was already solved (at least in PHP 5).
Closing...
------------------------------------------------------------------------
[2003-11-02 09:29:59] betz@php.net
php -r 'var_dump(ini_get("implicit_flush")); echo "test\n"; while
(1);'
doesn't output anything, even as implicit_flush is set to 1 in
php-cli.ini.
It seems only -n switch solves the problem, providing a php.ini
with cli specific settings doesn't solve the flush prob.
Is this the desired behaviour?
(testing with 4.3.2, RH8)
------------------------------------------------------------------------
[2003-09-08 18:50:02] eru@php.net
Ok, then this is an error in the documentation.
The quoted paragraph should get removed alltogether, as it is plain wrong.
------------------------------------------------------------------------
[2003-09-08 15:48:00] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
To avoid this problem use php-cli.ini with settings specific to CLI.
------------------------------------------------------------------------
[2003-08-28 15:49:48] eru@php.net
Description:
------------
From http://de.php.net/manual/en/features.commandline.php:
"It is desired that any output coming from print(), echo() and friends is immediately written
to the output and not cached in any buffer. You still can use output buffering if you want to defer
or manipulate standard output."
Right, that's exactly what you expect, when using CLI, but this only works as long, as you
don't have a php.ini, where output_buffering is enabled. The unfortunate thing is only, you
can't change it in your script, because it's not PHP_INI_USER. The only way out, is either
creating a php.ini for CLI only, which hardly every installation has, by declaring -n in your
commandline, which isn't desirable either, when you rely on certain settings in php.ini or by
passing a -d output_buffering=0 on the commandline, but I wasn't able to achieve this in a
#!/usr/local/bin/php line at the top of the script.
So, what we have here in my opinion is a contradictory situation, because implicit_flush = 1 is
overruled by outbut_buffering = 4096.
Reproduce code:
---------------
<?php
var_dump(ini_get("implicit_flush"));
sleep(2);
?>
Expected result:
----------------
string(1) "1"
<2 seconds of waiting>
Actual result:
--------------
<2 seconds of waiting>
string(1) "1"
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=25304&edit=1