#23826 [Opn]: ob_end_clean() returns error notice when buffer is empty
| From: | goba@php.net | Date: | Tue, 27 May 2003 15:12:59 +0000 |
| Subject: | #23826 [Opn]: ob_end_clean() returns error notice when buffer is empty | ||
| References: | 1 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969353942@lists.php.net to get a copy of this message | ||
ID: 23826
Updated by: goba@php.net
Reported By: jc at mega-bucks dot co dot jp
Status: Open
Bug Type: Documentation problem
Operating System: Red Hat Linux 8.0
PHP Version: 4.3.2RC4
New Comment:
Why do you want to check before calling ob_end_clean()? It seems you
simply want to call that then why not @ob_end_clean()?
Previous Comments:
------------------------------------------------------------------------
[2003-05-27 03:19:41] jc at mega-bucks dot co dot jp
Ok. I understand the "bug fix" but that fix now causes another problem
...
I have a custom error handler with the following code:
$buffer = ob_get_contents();
ob_end_clean();
The call to ob_end_clean() will throw a notice if the buffer if empty,
which will cause the error handler to either fail or call itself again
(possibly infinitely?).
So just to be clear, it seems you are saying that *technically*
calling ob_end_clean() on an empty buffer is incorrect?
If this is so, what is the proprer way of checking if the buffer is
empty before calling ob_end_clean()?
If there is a way of checking wether the buffer is empty or not then
all is fine, if not then there is a problem ;)
------------------------------------------------------------------------
[2003-05-27 03:10:02] sniper@php.net
You don't need to submit anymore bug reports..
And I meant with that crash preventing that it now throws
an error and returns false, reviously when it didn't check
the buffer, it just crashed. (that was the fix)
------------------------------------------------------------------------
[2003-05-27 02:23:47] jc at mega-bucks dot co dot jp
>The notice was added to prevent it from crashing with empty buffers
I must be missing something ... how does throwing a notice prevent
anything from crashing? Or do you mean there is absolutely no way to
check that the output buffer is empty *except* to call ob_end_clean()
and check to see if a notice was thrown or not?
If that's the case then ... ouch.
>Docs should mention this though.
That would be nice ;) Does re-categorizing it as a documentation
problem mean that someone will get around to it or should I submit a
new documentation bug report?
Thanks!
------------------------------------------------------------------------
[2003-05-27 02:17:44] sniper@php.net
The notice was added to prevent it from crashing with empty buffers.
Just use @ in front of it if it bothers you.
Docs should mention this though.
------------------------------------------------------------------------
[2003-05-27 01:21:14] jc at mega-bucks dot co dot jp
I get the following notice/error when calling ob_end_clean()
Notice: ob_end_clean(): failed to delete buffer. No buffer to delete.
#1 - why is it an error to call ob_end_clean() on an empty output
buffer?
#2 - Must one check before hand if the output buffer has any content,
if so the documentation should state this.
Thanks!
PS I am using PHP 4.3.2RC3
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=23826&edit=1