Php 无法在输出缓冲显示处理程序中使用输出缓冲

Php 无法在输出缓冲显示处理程序中使用输出缓冲,php,apache,output-buffering,ob-start,Php,Apache,Output Buffering,Ob Start,我重新安装了Apache,并从PHP5.3切换到了5.6。除了调用ob\u start()时出现此错误外,所有操作都正常: 我尝试在PHP中启用输出缓冲,但仍然出现以下错误: output_buffering = 4096 可能您正在输出缓冲回调中使用缓冲函数,这在php ob_start文档中是不可能的。如果不是,它应该是您使用的输出处理程序,请检查您的php.ini,如果可能,尝试将其值设置为“none”。也许此示例代码可以帮助您: ob_start(); echo "test"; $co

我重新安装了Apache,并从PHP5.3切换到了5.6。除了调用
ob\u start()
时出现此错误外,所有操作都正常:

我尝试在PHP中启用输出缓冲,但仍然出现以下错误:

output_buffering = 4096

可能您正在输出缓冲回调中使用缓冲函数,这在php ob_start文档中是不可能的。如果不是,它应该是您使用的输出处理程序,请检查您的php.ini,如果可能,尝试将其值设置为“none”。

也许此示例代码可以帮助您:

ob_start();
echo "test";
$content = ob_get_contents();
ob_end_clean();
var_dump($content);

您正在尝试在缓冲区回调中启动输出缓冲区。如果您使用此代码,它将生成该错误。但是,如果从回调函数中删除
ob\u 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();

您重新启动Web服务器了吗?当然。很多时候,使用的php.ini中的内存限制是多少,我想如果你将它设置为一个更高的值,它就会工作。php.ini中的内存限制是多少?现在是1024米,应该足够了!是自定义网站还是wordpress?
<?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();