出力クラス

出力クラスはコアクラスであり、主な機能はひとつだけです: 要求元のブラウザに完成した Web ページを送信します。また、あなたが Web ページの キャッシュ機能 を使用する場合は、 それを処理する責任も持ちます。

注釈

このクラスはシステムによって自動的に初期化されますので、 手動で行う必要はありません。

通常の状況ではあなたの操作なしに透過的に動作しますので、 出力クラスを意識することはありません。たとえば、 ビューファイルをロードするために Loader クラスを使うとき、 自動的に出力クラスに渡されますが、 CodeIgniter によりシステム実行の終了時に自動的に呼び出されます。 しかしながら、必要がある場合、 手動で出力を操作することは可能です。

クラスリファレンス

class CI_Output
$parse_exec_vars = TRUE;

{elapsed_time} と {memory_usage} 擬似変数の構文解析を有効/無効にします。

CodeIgniterはデフォルトで出力中のこれらのトークンを解析します。 これを無効にするには、コントローラでこのプロパティを FALSE に設定します。

$this->output->parse_exec_vars = FALSE;
set_output($output)
パラメータ:
  • $output (string) – 出力へ設定する文字列
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

手動で最終的な出力文字列を設定することを可能にします。使用例:

$this->output->set_output($data);

重要

手動で出力を設定する場合、それは関数呼び出し元で行う最後のものでなければなりません。 たとえば、あなたのコントローラメソッドのいずれかでページを作成した場合、 最後まで出力を設定しないでください。

set_content_type($mime_type[, $charset = NULL])
パラメータ:
  • $mime_type (string) – MIME タイプ文字列
  • $charset (string) – 文字セット
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

ページの MIME タイプを設定することを可能にします。これにより JSON データ、 JPEG 、 XML などの提供が簡単になります。

$this->output
        ->set_content_type('application/json')
        ->set_output(json_encode(array('foo' => 'bar')));

$this->output
        ->set_content_type('jpeg') // ".jpeg" も使えます。ピリオドは config/mimes.php を探す前に削除されます
        ->set_output(file_get_contents('files/something.jpg'));

重要

非MIME文字列をこのメソッドに渡す場合は application/config/mimes.php に存在することを確認してください。ない場合は効果はありません。

また、第 2 引数を渡すことでドキュメントの文字セットを設定することができます:

$this->output->set_content_type('css', 'utf-8');
get_content_type()
返り値:Content-Type の文字列
返り値の型:string

現在使用中の Content-Type HTTP ヘッダを返します。ただし文字セット値は除きます。

$mime = $this->output->get_content_type();

注釈

設定されていない場合、デフォルトの戻り値は ‘text/html’ です。

get_header($header)
パラメータ:
  • $header (string) – HTTP ヘッダ名
返り値:

HTTP レスポンスヘッダ、見つからない場合は NULL

返り値の型:

mixed

指定の HTTP ヘッダ値を返します。指定のヘッダが設定されていない場合は NULL を返します。 例:

$this->output->set_content_type('text/plain', 'UTF-8');
echo $this->output->get_header('content-type');
// 出力: text/plain; charset=utf-8

注釈

ヘッダ名は大文字小文字を区別せずに比較されます。

注釈

PHP 標準の header() 関数を使用して送信される生のヘッダも検出対象です。

get_output()
返り値:出力文字列
返り値の型:string

出力クラスに格納された出力を手動で取得することができます。 使用例:

$string = $this->output->get_output();

$this->load->view() などの CodeIgniter の機能により出力クラスに送られたデータのみが この関数から取得できることに注意してください。

append_output($output)
パラメータ:
  • $output (string) – 追加の出力データ
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

出力文字列にデータを追加します。

$this->output->append_output($data);
set_header($header[, $replace = TRUE])
パラメータ:
  • $header (string) – HTTP レスポンスヘッダ
  • $replace (bool) – すでに設定済みの場合、古いヘッダの値を置換するかどうか
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

手動でサーバのヘッダを設定することができます。 ヘッダは最終的にレンダリング表示を出力する際、出力クラスが送信します。例:

$this->output->set_header('HTTP/1.0 200 OK');
$this->output->set_header('HTTP/1.1 200 OK');
$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate');
$this->output->set_header('Cache-Control: post-check=0, pre-check=0');
$this->output->set_header('Pragma: no-cache');
set_status_header([$code = 200[, $text = '']])
パラメータ:
  • $code (int) – HTTP ステータスコード
  • $text (string) – オプションのメッセージ
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

サーバステータスヘッダを手動で設定することができます。例:

$this->output->set_status_header(401);
// ヘッダはこれに設定されます:  Unauthorized

ヘッダの完全なリストについては ここを参照してください

注釈

このメソッドは 共通関数set_status_header() のエイリアスです。

enable_profiler([$val = TRUE])
パラメータ:
  • $val (bool) – プロファイラを有効または無効にするかどうか
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

プロファイラ を有効/無効にすることができます。 プロファイラはデバッグと最適化を目的として、ベンチマークとその他の値をページの下部に表示します。

プロファイラを有効にするには コントローラ メソッド内の任意の場所につぎの行を追加します:

$this->output->enable_profiler(TRUE);

有効にするとレポートが生成され、ページの下部に挿入されます。

プロファイラを無効にするには次のようにします:

$this->output->enable_profiler(FALSE);
set_profiler_sections($sections)
パラメータ:
  • $sections (array) – プロファイラセクション
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

プロファイラが有効になっているとき、特定のセクションを有効/無効にすることができます。 詳細は プロファイラ ドキュメントを参照してください。

cache($time)
パラメータ:
  • $time (int) – 秒単位でキャッシュの有効期限
返り値:

CI_Output インスタンス(メソッドチェイン)

返り値の型:

CI_Output

指定された秒数で現在のページをキャッシュします。

詳細は キャッシングのドキュメント を参照してください。

_display([$output = ''])
パラメータ:
  • $output (string) – 上書きする出力データ
返り値:

void

返り値の型:

void

いくつかのサーバヘッダとともにブラウザに最終出力データを送信します。 また、ベンチマークタイマを停止します。

注釈

このメソッドはスクリプト実行の終了時に自動的に呼び出されるので、 exit() または die() を使用してスクリプト実行を中止しない限り、手動で呼び出す必要はありません。

例:

$response = array('status' => 'OK');

$this->output
        ->set_status_header(200)
        ->set_content_type('application/json', 'utf-8')
        ->set_output(json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES))
        ->_display();
exit;

注釈

スクリプト実行を中断することなく手動でこのメソッドを呼び出すと、出力が重複します。