Note that if you started called ob_start with a callback, that callback will still be called even if you discard the OB with ob_end_clean.
Because there is no way of removing the callback from the OB once you've set it, the only way to stop the callback function from having any effect is to do something like:
<?php
$ignore_callback = false;
ob_start('my_callback');
...
if($need_to_abort) {
$ignore_callback = true;
ob_end_clean();
...
}
function my_callback(&$buffer) {
if($GLOBALS['ignore_callback']) {
return "";
}
...
}
?>