Doc #64460 [Nab]: ob_start implicit flush content
| From: | yohgaki@php.net | Date: | Tue, 06 Aug 2013 10:34:37 +0000 |
| Subject: | Doc #64460 [Nab]: ob_start implicit flush content | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-10145@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=64460&edit=1
ID: 64460
Updated by: yohgaki@php.net
Reported by: valentiny510 at yahoo dot es
Summary: ob_start implicit flush content
Status: Not a bug
Type: Documentation Problem
Package: Output Control
PHP Version: Irrelevant
Assigned To: mike
Block user comment: N
Private report: N
New Comment:
"Or add buffered contents after ob_end_flush()?"
should be
"Or add unbuffered contents after ob_end_flush()?"
Previous Comments:
------------------------------------------------------------------------
[2013-08-06 10:33:07] yohgaki@php.net
Unless you discard outputs, all buffered data is sent when execution is
finished.
The documentation is a bit misleading. At least a user is confused by
documentation.
http://www.php.net/manual/en/function.ob-start.php
> This function will turn output buffering on. While output buffering is active
no output is sent from the script (other than headers), instead the output is
stored in an internal buffer.
Adding "All buffered contents are sent when script execution is finished."?
Example #1
<?php
function callback($buffer)
{
// replace all the apples with oranges
return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
ob_end_flush();
?>
I think ob_end_flush() is not needed here. Or add buffered contents after
ob_end_flush()?
------------------------------------------------------------------------
[2013-08-06 07:03:14] valentiny510 at yahoo dot es
wait.. mike.. what .. ??
------------------------------------------------------------------------
[2013-07-30 19:16:53] mike@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
Quote:
"While output buffering is active..."
Output buffering will be disabled at request shutdown of course.
------------------------------------------------------------------------
[2013-03-20 01:09:19] valentiny510 at yahoo dot es
P.S. I found something related Request #23877 "ob_implicit_flush does not work".
Damn, a 10 years bug/request again... Rasmus I think is time to upgrade the team not the
documentation :D. Just joking..
But seriously guys, you cannot allow to happend thinks like this, I perfectly understand is a lot of
work sometimes but 10 years... is something.. too much
I remember times when some of my clients calls me at midnight to fix their sites... what a happy
days..
------------------------------------------------------------------------
[2013-03-20 00:48:54] valentiny510 at yahoo dot es
Description:
------------
I write this like a Request but I think is more a bug. According to documentation of ob_start:
"While output buffering is active no output is sent from the script (other than headers),
instead the output is stored in an internal buffer." but is not true.
implicit_flush = Off or ob_implicit_flush( false ) are also useless.
Or change the documentation or change the function behaviour to act according to the documentation.
When somebody active the buffering it expect to see the blank page until explicit call some flush
functions right ? At least this said the docs.
Test script:
---------------
<?php
ob_start( );
echo 'Blah';
Expected result:
----------------
empty page
Actual result:
--------------
Blah <<< This should never shown
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64460&edit=1