PHP 出力制御関数 リファレンス

PHP 出力制御関数について

PHPにはブラウザに送信するコンテンツとそのタイミングを制御するための一連の関数が用意されています。これは出力制御と呼ばれます。

出力は以下のようなケースで行われます。

  • echo、print、printf、print_rなどの関数や文
  • PHPからの通知、警告、エラー
  • タグの外の任意のコンテンツ

PHPとそのバックエンドは、ユーザーに送信する前に出力をバッファに保持することがあります。

Note: 出力制御関数は任意の数の出力バッファを作成することができます。出力バッファはプログラムによって提供された出力をキャッチします。新しい出力バッファは出力バッファのスタックの一番上に配置され、提供される出力はその下のバッファによってキャッチされます。出力制御関数は常に最上位のバッファのみを操作しますので、そのバッファを操作するには最上位のバッファを削除する必要があります。

インストール

PHP出力制御関数はPHPにデフォルトで組み込まれています。これらの関数を使用するためにはインストールは不要です。

ランタイム構成

出力制御関数の動作はphp.iniの設定によって影響を受けます

名前 デフォルト値 説明 バージョン
output_buffering “0” すべてのPHPファイルでデフォルトで出力バッファリングを有効にします 4
output_handler NULL すべての出力バッファの出力を処理するデフォルト関数の名前を設定します 4
implicit_flush “0” 暗黙のフラッシュを有効にします。これにより、各出力ステートメントで出力が直接ブラウザに送信されます 4
url_rewriter.tags “a=href,area=href, frame=src,form=,fieldset=” URLリライト(output_add_rewrite_var()関数)で変更できるHTMLタグと属性を示します 4.3
url_rewriter.hosts $_SERVER[‘HTTP_HOST’]の現在の値 デフォルトではサーバー自体のURLのみに対してURLの書き換えが行われます。他のウェブサイトのURLを書き換えるためには、他のウェブサイトのホスト名をここに設定します 7.1

PHP出力制御関数

メソッド 関数
flush() システムの出力バッファからブラウザにコンテンツを送信しようとします
ob_clean() 最上位の出力バッファからすべてのコンテンツを削除します
ob_end_clean() 最上位の出力バッファとそのすべての内容を削除します
ob_end_flush() 最上位の出力バッファを削除し、その内容を出力します
ob_flush() 最上位の出力バッファの内容を出力し、バッファをクリアします
ob_get_clean() 最上位の出力バッファのすべての内容を返し、バッファをクリアします
ob_get_contents() 最上位の出力バッファの内容を返します
ob_get_flush() 最上位の出力バッファの内容を出力し、バッファを削除します
ob_get_length() 最上位の出力バッファ内のデータのバイト数を返します
ob_get_level() スタック上にある出力バッファの数を返します
ob_get_status() 出力バッファに関する情報を返します
ob_gzhandler() ob_start()で使用されるコールバック関数で、バッファの内容を圧縮してブラウザに送信します
ob_implicit_flush() 暗黙のフラッシュをオンまたはオフにします
ob_list_handlers() 最上位の出力バッファで使用されているコールバック関数名の配列を返します
ob_start() 新しい出力バッファを作成し、スタックの一番上に追加します
output_add_rewrite_var() 出力に対してクエリ文字列パラメータを追加します
output_reset_rewrite_vars() output_add_rewrite_var()によって追加されたすべての変数を削除します