#23826 [Opn]: ob_end_clean() returns error notice when buffer is empty

From: 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

« previous php.doc (#969353942) next »