Not create (output), nor send emails.
I think the workaround is the other way around hehe
It's the way you want it to work that is a workaround, since there is probably a better way to do it.
-I agree, print_r($var, true) should work but doesn't.
You could print_r() before or after ob_handler being called (upon script end or ob_end_flush, or something like that)
-I think you could still send the email from the ob_handler (though i think it's ugly) and keep the separation if you read the template file and handle it instead of including directly after a ob_start() (that's what you're doing, right?)
Or you could send the email out of the ob_handler
> 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 !
Not sure if i undertood you. Are you trying to emit errors during ob_handler execution and prevent them from being output using ob_start()?
You could use error_reporting()+error_log()[+trigger_error()] or something?
Okin okin wrote:
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 !
signature.asc
Description: OpenPGP digital signature