<?php
function ob($function){
ob_start();
$function();
$produced = ob_get_contents();
ob_end_clean();
return $produced;
}
echo ob(function(){echo 123;})=='123'?"echo captured\n":'';
Пример #1 Пример контроля вывода
<?php
ob_start();
echo "Привет\n";
setcookie("cookiename", "cookiedata");
ob_end_flush();
?>
В приведённом примере вывод языковой конструкции echo будет храниться в буфере вывода до вызова функции ob_end_flush(). Тем временем вызов функции setcookie() успешно сохранится в cookie браузера, не вызывая ошибки (заголовки не получится отправить в браузер, когда данные уже отправлены).
<?php
function ob($function){
ob_start();
$function();
$produced = ob_get_contents();
ob_end_clean();
return $produced;
}
echo ob(function(){echo 123;})=='123'?"echo captured\n":'';