PHP 出力バッファリング (出力バッファリング) とは、PHP がブラウザーに送信しようとしているすべてのコンテンツを一時的にバッファーに置き、PHP プログラム全体が実行された後にバッファーのコンテンツを出力することを意味します。
PHP のバッファリングに関連するほとんどすべての組み込み関数は ob_ で始まります。さらに、PHP 設定ファイル php.ini には、出力バッファリング命令がありますが、通常はオフになっていますが、使用するときに手動でオンにすることができます (オンにすると、すべての PHP プログラムでバッファリングが実行されます)。 )。
バッファリングはいつ使用するのでしょうか?これは通常、セッションと Cookie を設定するときに使用されます。セッションと Cookie には事前に出力を含めることができないため、出力バッファリング メカニズムを有効にする必要があります。
1. バッファリング関数を有効にして終了します - ob_start()、ob_end_flush()
バッファリングが外部で使用されている場合、ob_start() でバッファリングを開始し、ob_end_flush() でバッファリングを終了できます。よく使用されるいくつかの関数:
ob_flush() - 事前にバッファを送信し、ob_start() と ob_flush() の間の出力を事前に (php プログラム全体が終了する前に) ブラウザに送信します。
ob_clean() - キャッシュをクリアします。 ob_start() と ob_clean() の間の出力バッファは表示のためにブラウザに送信されません。
ob_end_clean() - ob_clean() と同様に前のバッファをクリアします。違いは、バッファ関数全体を終了し、その後の出力コンテンツはすべてバッファに入れられないことです。
ob_start() は複数レベルのネストで使用でき、大きなバッファを開いて、必要に応じて特定のバッファをクリアできます。
2. ob_start() を使用して、出力をブラウザではなくバッファに出力します。
次に、ob_get_contents を使用してバッファ データを取得します。 ob_start() は、すべての出力を保持するためにサーバー上のバッファを開きます。そのため、echo が使用されるたびに、プログラムが終了するか、ob_flush() を使用して終了されるまで、出力はバッファーに追加されます。次に、サーバー内のバッファの内容がブラウザに送信され、ブラウザによって解析されて表示されます。
このとき、バッファの内容を取得するには、ob_get_contents() 関数を ob_end_clean() の前で使用する必要があります。
この場合、ob_end_clean()を実行する前に内容を変数に保存し、ob_end_clean()の後にその変数を操作することができます。
ob_start();
echo '中国共産党はどうですか?';
$name = ob_get_contents();
$length = ob_get_length();
ob_end_clean();
エコー $name;
著者「wbgod_1987」