2011-05-15 57 views
7

我遇到了ob_start问题。不知道这笔交易是什么,但我已经将它引入最简单的测试案例......仍然无济于事。我希望这段代码向stdout输出'bar',但是我没有收到任何回应,并且在我的错误日志中没有错误。ob_start不执行回调

<?php 
function gzhandler_ex($buffer, $mode) 
{ 
    echo 'bar'; 
} 

ob_start('gzhandler_ex'); 
echo 'foo'; 
ob_flush(); 

我从来没有见过这个,但我通常不使用这样的回调。

回答

9

您的处理函数应该return您要输出的内容,而不是回显它。

function gzhandler_ex($buffer, $mode) 
{ 
    return 'bar'; 
} 

另外,在脚本末尾调用ob_flush()是不必要的;它是隐含的。

+0

Facepalm。非常感谢,我知道它必须是基础的东西。 – 2011-05-15 11:57:38