7

ob_start に問題があります。取引が何であるかはわかりませんが、可能な限り単純なテストケースにバブルダウンしました...それでも役に立ちません. このコードは「バー」を stdout に出力すると思いますが、何も返されず、エラー ログにもエラーはありません。

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

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

これは今まで見たことがありませんが、通常、このようなコールバックは使用しません。

4

1 に答える 1

9

ハンドラー関数はreturn、エコーではなく、出力するコンテンツにする必要があります。

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

また、ob_flush()スクリプトの最後に呼び出される場合は不要です。それは暗黙的です。

于 2011-05-15T11:06:18.727 に答える