2

他の開発者やデザイナーが使用する共有 Web サーバーでの作業。XML ドキュメントの処理。次のコードは、先日まで常に機能していました。

while (ob_get_level() > 0) { ob_end_flush(); }

それ以来、 にob_end_flush()到達するたびに、スクリプトob_end_flush()exit(). エラー報告/display_errors をオンにしてもエラーは出力されません。上記の行をコメントアウトすると、スクリプトが完全に実行され、完全なスクリプトが実行された後にのみスクリプト出力が表示されます。@ob_end_flush()違いはありませんでした。ob_get_level()です1var_dumpingob_end_flush()も終了します。CodeIgniter を使用していますが、このコードをフレームワークの外で試しても同じ結果が得られました。

ob_end_flush()毎回突然スクリプトが停止し始める理由はありますか? チェックすべきPHP設定はありますか?

4

1 に答える 1

1

やっと問題が見つかりました - 私のコードが CodeIgniter の外で動作し始めたように見えたとき、CodeIgniter の index.php ブートストラップ ファイルをチェックしたところ、誰かが追加した次のコードに出くわしました:

if (substr_count( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')){ 
      ob_start("ob_gzhandler");
} 
else {
     ob_start(); 
}

これが原因でした。

于 2013-06-13T12:27:48.633 に答える