У меня есть проблема с буферизацией вывода в Laravel 4. Этот код работает хорошо в других рамках, но в Laravel я получаю фатальную ошибку для ob_get_flush()Laravel и буферизация вывода
class Ajax
{
public function __construct()
{
if (Request::ajax())
{
ob_clean();
ob_start(function(){});
register_shutdown_function(array(&$this,'setOutput'));
}
}
public function setOutput()
{
$html = ob_get_flush();
}
}
ошибка:
ob_get_flush(): failed to delete and flush buffer. No buffer to delete or flush
Как вы видите, я вызвал ob_start в конструкторе класса, если мы находимся в ajax-запросе –
Ну, вы даже не сможете выполнять 'ob_clean();' перед 'ob_start()'. Но давайте предположим, что вы можете, это первое, что случается в этом классе всегда как ajax-запрос? Если нет, то вы все еще не инициировали 'ob_start()'. –
Если мы не в ajax-запросе, тогда «register_shutdown_function» не будет работать, и ob_get_flush() никогда не будет вызван –