我重新安装了Apache,并从PHP 5.3切换到5.6。在调用ob_start()
:
Cannot use output buffering in output buffering display handlers
我尝试在PHP中启用输出缓冲,但我仍然收到此错误:
output_buffering = 4096
答案 0 :(得分:6)
您正试图在缓冲区回调中启动输出缓冲区。如果您使用此代码,则会生成该错误。但是,如果您从回调函数中删除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();
答案 1 :(得分:1)
可能你在输出缓冲回调中使用了一个缓冲函数,这在php ob_start output_callback文档中提到是不可能的。如果不是它应该是您使用的输出处理程序,请检查您的php.ini并尽可能将其值设置为“none”。
答案 2 :(得分:1)
也许这个示例代码可以帮助您:
ob_start();
echo "test";
$content = ob_get_contents();
ob_end_clean();
var_dump($content);