2011-09-11 34 views
33

どちらも同じことをしているようです。出力バッファの内容をあなたに返して、それを削除してください。ob_get_cleanとob_get_flushの相違

どちらを使用すればよいですか?

+6

私はあまりにもマニュアルの説明で混乱しているので私のdownvoteを撤回しています"出力"、私はそれがそうだと思う) –

+0

...誰も知らない? – EEka

+9

忍耐、若いパダワン! 6分、10ページしか表示されていません。 – JJJ

答えて

-6

は直接あなたの質問に答えるしようとします。 (これは、テキストがない場合、空白がブラウザにエコーされている場合にのみ使用できることを忘れないでください)。 したがって、私のプログラミングブックはすべてob_get_flushに矛盾しています(ほとんどのスクリプトで1つのバッファとしてのみ)

+3

'ob_get_clean'は出力バッファリングを終了します。それをもう一度オンに戻す必要があります。 –

+1

上記の正しい答えではありません。下のarnaud576875の答えを確認してください。 – jcisio

94

ob_get_clean()は、バッファを(印刷せずに)削除し、その内容を返します。

ob_get_flush()は、バッファを印刷して削除し、その内容を返します。

+0

古いものの、頭が傷ついているのを救ってくれました。頭がおかしい! –

+1

OPは9月11日から戻って来なかった! – revo

17

ob_get_cleanは、バッファの内容を返し、それを任意の変数に割り当てますが、何も出力しません。

ob_get_flush一方、ob_get_cleanのすべてが行いますが、コンテンツも出力されます。

7

どちらの関数も出力バッファをクリアし、出力バッファリングをオフにして、前のバッファ値を返します。

ただし、ob_get_flushは最初に現在のバッファをクライアントに送信しますが、ob_get_cleanは現在のバッファを破棄します。あなたがバッファをフラッシュした後、出力バッファリング再びを開始したい場合は、その後、

まだ背面に電源を入れなくても準備ができて、出力バッファとしてob_get_clean使用:

+1

+1は 'ob_get_flush'は、ob_get_cleanが"バッファリングのオプションを変更しない "と言って、 – NullUserException

+0

-1のバッファリングをオフにします。これは正しくありません - どちらも実際にバッファリングをオフにします。 ob_get_cleanのmanページから "出力バッファの内容を返し、出力バッファリングを終了する"。また、バッファを破棄しているとは言いません。それは他の答えが言ったようにそれを返します。捨てると、それはそれを完全に捨てるということを私に暗示します。 – Adam

+0

@Adam偉大なキャッチは、答えを書き換えました。破棄とフラッシュはネットワークレベルの用語ですが、新しいバージョンではそれを明確にする必要があります。 – phihag

関連する問題