Невозможно использовать буферизацию вывода в обработчиках отображения буферизации вывода

Я переустановил Apache и перешел с PHP 5.3 на 5.6. Все работает, кроме того, что я получаю эту ошибку при звонке ob_start():

Cannot use output buffering in output buffering display handlers

Я попытался включить буферизацию вывода в PHP, но я все еще получаю эту ошибку:

output_buffering = 4096

9

Решение

Возможно, вы используете функцию буферизации в обратном вызове буферизации вывода, что невозможно, как указано в php ob_start output_callback документация. Если нет, то это должен быть обработчик вывода, который вы использовали, проверьте ваш php.ini и попробуйте установить его значение в «none», если это возможно.

1

Другие решения

Вы пытаетесь запустить выходной буфер внутри буфера обратного вызова. Если вы используете этот код, он сгенерирует эту ошибку. Но если вы удалите ob_start() из функции обратного вызова все в порядке.

<?php
error_reporting(-1);

function callback($buffer){
//you can't call ob_start here
ob_start();
return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
ob_end_flush();
5

может быть, этот пример кода может помочь вам:

ob_start();
echo "test";
$content = ob_get_contents();
ob_end_clean();
var_dump($content);
1
По вопросам рекламы [email protected]