One last note on this :
the limitation I'm talking about is annoying in two cases for me :
- I can't use "print_r($var, true)" inside an ob_handler, because print_r uses
ob_start internally. And I need this to append some debug info to my buffer. The
workaround for this is to make my own print_r...
- In some cases, I would like to send an email from an ob_handler. But I make my
emails with some logic/presentation separation. And most if not all template systems
use ob_start to fetch their output into a $variable. The workaround here is to
register_shutdown_function the mail-sending function inside the ob_handler.
As you can see, I've two real problems, and a real solution (by PHP source mods) could
be far better than two workarounds isn't it ?
One would allow ob_start to be called inside an ob_handler, and the error message
would be printed only if output buffering is always on at the end of this ob_handler,
it would be perfect !
Please consider this idea, and thank you for your patience.
Nikos
Taco van den Broek <[EMAIL PROTECTED]> wrote:
Okin okin wrote:
> I'm having trouble with output buffering limitation
> and the output_callback function of ob_start.
>
> look at this script :
>
> function ob_perso_handler($buffer)
> {
> ob_start();
> echo 'foo';
> $buffer .= ob_get_contents();
> ob_end_clean();
>
> return $buffer;
> }
>
> ob_start('ob_perso_handler');
>
> echo 'Hello World !';
>
> ?>
>
> it outputs : "Fatal error: ob_start(): Cannot use
> output buffering in output buffering display handlers"
>
I don't really understand your problem, it seams to me you want to add
output to the buffer in the output handler!?
Why not just:
<?php
function myObHandler($buffer)
{
$buffer .= 'foo';
return $buffer;
}
ob_start('myObHandler');
?>
---------------------------------
Yahoo! Mail : votre e-mail personnel et gratuit qui vous suit partout !
Cr�ez votre Yahoo! Mail
Dialoguez en direct avec vos amis gr�ce � Yahoo! Messenger !