Я переустановил Apache и перешел с PHP 5.3 на 5.6. Все работает, кроме того, что я получаю эту ошибку при звонке ob_start()
:
Cannot use output buffering in output buffering display handlers
Я попытался включить буферизацию вывода в PHP, но я все еще получаю эту ошибку:
output_buffering = 4096
Возможно, вы используете функцию буферизации в обратном вызове буферизации вывода, что невозможно, как указано в php ob_start output_callback документация. Если нет, то это должен быть обработчик вывода, который вы использовали, проверьте ваш php.ini и попробуйте установить его значение в «none», если это возможно.
Вы пытаетесь запустить выходной буфер внутри буфера обратного вызова. Если вы используете этот код, он сгенерирует эту ошибку. Но если вы удалите 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();
может быть, этот пример кода может помочь вам:
ob_start();
echo "test";
$content = ob_get_contents();
ob_end_clean();
var_dump($content);