2011-05-15 62 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