ホームページ  >  記事  >  バックエンド開発  >  PHP出力バッファ制御

PHP出力バッファ制御

伊谢尔伦
伊谢尔伦オリジナル
2016-11-22 09:51:271056ブラウズ

はじめに

PHP スクリプトが出力すると、出力制御関数はこれらを使用して出力を制御できます。これは、さまざまな状況で役立ちます。特に、スクリプトがデータの出力を開始した後にブラウザに http ヘッダーを送信する場合に便利です。出力制御関数は、header() または setcookie() によって送信されるファイル ヘッダー情報には影響せず、echo や PHP コード ブロックなどの関数間のデータにのみ影響します。

注:

以前のバージョンの欠陥のため、PHP4.1.x (4.2.x、4.3.x) からアップグレードする場合は、php.ini の implicit_flush がオフになっていることを確認する必要があります。そうでない場合は、ob_start() を使用しないでください。出力は出力内に隠されます。

基本的な使い方

<?php
    ob_start();
    echo "Hello\n";
    setcookie("cookiename", "cookiedata");
    ob_end_flush();
?>

上記の例では、echo関数の出力はob_end_flush()が呼び出されるまで出力バッファに保存されます。同時に、setcookie() の呼び出しでも、エラーが発生することなく Cookie が正常に保存されます。 (通常の状況では、データがブラウザに送信されると、http ヘッダー情報は送信できなくなります。)

出力制御関数

flush — 出力バッファをフラッシュする

ob_clean — 出力バッファをクリア (消去)

ob_end_clean — バッファをクリア(消去)し、出力バッファを閉じる

ob_end_flush — 出力バッファの内容をフラッシュ(送信)し、バッファを閉じる

ob_flush — 出力バッファの内容をフラッシュ(送信)

ob_g​​et_clean — 現在のバッファの内容を取得し、現在の出力バッファを削除します。

ob_g​​et_contents — 出力バッファの内容を返します。

ob_g​​et_flush — バッファの内容をフラッシュ (送信) し、内容を文字列として返し、出力バッファを閉じます。

ob_g​​et_length — 出力バッファーのコンテンツの長さを返します

ob_g​​et_level — 出力バッファーメカニズムのネストレベルを返します

ob_g​​et_status — すべての出力バッファーのステータスを取得します

ob_g​​zhandler — 出力バッファーを圧縮するために ob_start で使用されます Content コールバック関数。

ob_implicit_flush — 絶対フラッシュのオン/オフを切り替えます。

ob_list_handlers — 使用中のすべての出力ハンドラーをリストします。

ob_start — 出力制御バッファーをオンにする

output_add_rewrite_var — URL リライター値を追加する

output_reset_rewrite_vars — URL リライター値をリセットする


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。