HTTPメッセージ
Messageクラスは、メッセージ本体、プロトコルバージョン、ヘッダーの操作ユーティリティ、およびコンテンツネゴシエーションを処理するためのメソッドを含む、リクエストとレスポンスの両方に共通のHTTPメッセージの部分へのインターフェースを提供します。
このクラスは、RequestクラスとResponseクラスの両方が拡張する親クラスです。
クラスリファレンス
- class CodeIgniter\HTTP\Message
- getBody()
- 戻り値:
現在のメッセージ本文
- 戻り値の型:
mixed
設定されている場合は現在のメッセージ本文を返します。本文が存在しない場合はnullを返します。
<?php echo $message->getBody();
- setBody($data)
- パラメータ:
$data (
mixed
) – メッセージの本文。
- 戻り値:
メソッドをチェーンできるようにするMessage|Responseインスタンス。
- 戻り値の型:
CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response
現在のリクエストの本文を設定します。
- appendBody($data)
- パラメータ:
$data (
mixed
) – メッセージの本文。
- 戻り値:
メソッドをチェーンできるようにするMessage|Responseインスタンス。
- 戻り値の型:
CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response
現在のリクエストの本文にデータを追加します。
- populateHeaders()
- 戻り値:
void
SERVERデータにあるヘッダーをスキャンして解析し、後でアクセスできるように保存します。これは、IncomingRequestクラスが現在のリクエストのヘッダーを利用できるようにするために使用されます。
ヘッダーは、
HTTP_
で始まるすべてのSERVERデータ(HTTP_HOST
など)です。各メッセージは、標準の大文字とアンダースコア形式から、ucwordsとダッシュ形式に変換されます。先頭のHTTP_
は文字列から削除されます。したがって、HTTP_ACCEPT_LANGUAGE
はAccept-Language
になります。
- headers()
- 戻り値:
見つかったすべてのヘッダーの配列。
- 戻り値の型:
array
見つかった、または以前に設定されたすべてのヘッダーの配列を返します。
- header($name)
- パラメータ:
$name (
string
) – 値を取得するヘッダーの名前。
- 戻り値:
単一のヘッダーオブジェクトを返します。同じ名前の複数のヘッダーが存在する場合は、ヘッダーオブジェクトの配列を返します。
- 戻り値の型:
CodeIgniter\HTTP\Header|array
単一のメッセージヘッダーの現在の値を取得できます。
$name
は大文字と小文字を区別しないヘッダー名です。ヘッダーは内部で上記のように変換されますが、任意の大文字/小文字タイプでヘッダーにアクセスできます<?php // These are all the same: $message->header('HOST'); $message->header('Host'); $message->header('host');
ヘッダーに複数の値がある場合、
getValue()
は値の配列として返されます。getValueLine()
メソッドを使用して、値を文字列として取得できます<?php echo $message->header('Accept-Language'); /* * Outputs something like: * 'Accept-Language: en,en-US' */ echo $message->header('Accept-Language')->getValue(); /* * Outputs something like: * [ * 'en', * 'en-US', * ] */ echo $message->header('Accept-Language')->getValueLine(); /* * Outputs something like: * en,en-US' */
2番目のパラメータとしてフィルター値を渡すことで、ヘッダーをフィルター処理できます
<?php $message->header('Document-URI', FILTER_SANITIZE_URL);
- hasHeader($name)
- パラメータ:
$name (
string
) – 存在するかどうかを確認するヘッダーの名前。
- 戻り値:
存在する場合はtrue、それ以外の場合はfalseを返します。
- 戻り値の型:
bool
- getHeaderLine($name)
- パラメータ:
$name (
string
) – 取得するヘッダーの名前。
- 戻り値:
ヘッダー値を表す文字列。
- 戻り値の型:
string
ヘッダーの値を文字列として返します。このメソッドを使用すると、ヘッダーに複数の値がある場合に、ヘッダー値の文字列表現を簡単に取得できます。値は適切に結合されます
<?php echo $message->getHeaderLine('Accept-Language'); /* * Outputs: * 'en,en-US' */
- setHeader($name, $value)
- パラメータ:
$name (
string
) – 値を設定するヘッダーの名前。$value (
mixed
) – ヘッダーに設定する値。
- 戻り値:
現在のMessage|Responseインスタンス
- 戻り値の型:
CodeIgniter\HTTP\Message|CodeIgniter\HTTP\Response
単一のヘッダーの値を設定します。
$name
は大文字と小文字を区別しないヘッダーの名前です。ヘッダーがコレクションにまだ存在しない場合は、作成されます。$value
は、文字列または文字列の配列のいずれかになります<?php $message->setHeader('Host', 'codeigniter.com');
- removeHeader($name)
- パラメータ:
$name (
string
) – 削除するヘッダーの名前。
- 戻り値:
現在のメッセージインスタンス
- 戻り値の型:
メッセージからヘッダーを削除します。
$name
は、ヘッダーの大文字小文字を区別しない名前です。<?php $message->removeHeader('Host');
- appendHeader($name, $value)
- パラメータ:
$name (
string
) – 変更するヘッダーの名前。$value (
string
) – ヘッダーに追加する値。
- 戻り値:
現在のメッセージインスタンス
- 戻り値の型:
既存のヘッダーに値を追加します。ヘッダーは、単一の文字列ではなく、値の配列である必要があります。文字列の場合、LogicException がスローされます。
<?php $message->appendHeader('Accept-Language', 'en-US; q=0.8');
- prependHeader($name, $value)
- パラメータ:
$name (
string
) – 変更するヘッダーの名前。$value (
string
) – ヘッダーの先頭に追加する値。
- 戻り値:
現在のメッセージインスタンス
- 戻り値の型:
既存のヘッダーの先頭に値を追加します。ヘッダーは、単一の文字列ではなく、値の配列である必要があります。文字列の場合、LogicException がスローされます。
<?php $message->prependHeader('Accept-Language', 'en,');
- getProtocolVersion()
- 戻り値:
現在のHTTPプロトコルバージョン
- 戻り値の型:
string
メッセージの現在のHTTPプロトコルを返します。何も設定されていない場合は、
1.1
を返します。
- setProtocolVersion($version)
- パラメータ:
$version (
string
) – HTTPプロトコルバージョン
- 戻り値:
現在のメッセージインスタンス
- 戻り値の型:
このメッセージが使用するHTTPプロトコルバージョンを設定します。有効な値は
1.0
,1.1
,2.0
および3.0
です。<?php $message->setProtocolVersion('1.1');