ob、出力バッファーは、出力キャッシュではなく、出力バッファリングの略語です。 ob を正しく使用すると、ある程度速度が向上しますが、やみくもに ob 関数を追加すると、CPU への余分な負担が増えるだけです。ob キャッシュがオンになっていると、エコー データが保存されます。最初に ob キャッシュに配置されます。ヘッダー情報の場合は、プログラム キャッシュに直接配置されます。ページが最後まで実行されると、ob キャッシュされたデータがプログラム キャッシュに配置され、順番にブラウザに返されます。
ob の基本的な機能について話しましょう:
1) setcookie()、header()、または session_start() などの関数を使用して、ブラウザーが出力した後にヘッダー ファイルを送信することによって引き起こされるエラーを防ぎます。実際、この種の使用頻度を減らし、適切なコーディング習慣を身に付ける方が良いでしょう。
2) 取得できない関数の出力をキャプチャします。たとえば、phpinfo() は大量の HTML を出力しますが、この時点では、ob は $info=phpinfo(); のような変数を使用できません。役に立つ。 3) gzip 圧縮、簡体字中国語と繁体字中国語間の変換、一部の文字列置換などの出力コンテンツを処理します。
4) 静的ファイルの生成では、実際にはページ全体の出力をキャプチャし、それをファイルとして保存します。 HTML 生成またはページ全体のキャッシュでよく使用されます。
先ほどの 3 番目の GZIP 圧縮については、使いたいと思っていても実際に使ったことがない人も多いかもしれませんが、実はコードを少し変更するだけで、ページの gzip 圧縮を実現できます。
ob_start(ob_gzhandler); 要缓存的内容
ob_get_contents
() のコンテンツを圧縮し、最後にエコーするというものでした。
ob_start(); //出力バッファーを開きます。すべての出力情報はブラウザーに直接送信されなくなり、出力バッファーに保存されます。 。
ob_clean(); //バッファを閉じずに内部バッファの内容を削除します(出力なし)。
ob_end_clean(); //内部バッファの内容を削除し、バッファを閉じます(出力なし)。ob_get_clean(); //内部バッファの内容を返し、バッファを閉じます。 ob_get_contents() および ob_end_clean() の実行と同等
ob_flush(); // 内部バッファの内容をブラウザに送信し、バッファの内容を削除し、バッファを閉じません。
ob_end_flush(); //内部バッファの内容をブラウザに送信し、バッファの内容を削除して、バッファを閉じます。
ob_get_flush(); //内部バッファの内容を返し、バッファを閉じてから、バッファの内容を解放します。 ob_end_flush() と同等で、バッファの内容を返します。
flush(); //ob_flush で解放した内容と PHP バッファにない内容をブラウザに出力し、内部バッファの内容を更新して出力します。
ob_get_contents(); // 出力せずにバッファーの内容を返します。
ob_get_length
(); // 内部バッファーがアクティブ化されていない場合、この関数は FALSE を返します。 ob_get_level(); //出力バッファリングメカニズムのネストレベルを返します。ob_get_status(); ob_implicit_flush(true) を開いた後、いわゆる絶対リフレッシュは、出力ステートメント (例: echo) が実行されることを意味します。出力はブラウザに直接送信され、flush() を呼び出したり、スクリプトの終了まで待ったりする必要はありません。
ob_gzhandler //ob_start コールバック関数は、gzip を使用してバッファーの内容を圧縮します。
以上がobシリーズ関数の出力キャッシュの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。