|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-08-28 15:49 UTC] 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" PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 08 08:00:01 2025 UTC |
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)