Input クラス

input クラスは、HTTP パラメータやサーバ変数、ユーザエージェント情報へのアクセスを提供します。

uri()

uri メソッドは正しい文字列で構築された現在の URI を検出します。

静的 はい
パラメータ なし
返り値 string - スラッシュに続く現在の URI
// Example URL: http://localhost/controller/method
echo Input::uri(); // 返り値: /controller/method

json($index = null, $default = null)

json メソッドは、json 形式で送られたリクエストボディをデコードして (and cleaned) 返します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 json リクエストボディの中のキー。多次元配列には、階層をドット (.) で区切ることでアクセスできます。
$default
null
指定された $index が取得できなかったときに返す値
返り値 array - Format::from_json 結果の配列
$value = \Input::json('key');

// 値が存在しない場合はデフォルト値がセットされる:
$value = \Input::json('key', 'backup-value');

xml($index = null, $default = null)

xml メソッドは、XML 形式で送られたリクエストボディをデコードして (and cleaned) 返します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 XML リクエストボディの中のキー。多次元配列には、階層をドット (.) で区切ることでアクセスできます。
$default
null
指定された $index が取得できなかったときに返す値
返り値 array - Format::from_xml 結果の配列
$value = \Input::xml('key');

// 値が存在しない場合はデフォルト値がセットされる:
$value = \Input::xml('key', 'backup-value');

cookie メソッドは、$_COOKIE 変数を読み込みます。 引数なしで呼び出すと、すべてのクッキーを配列で取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 $_COOKIE 配列のキー。多次元配列には、階層をドット (.) で区切ることでアクセスできます。
$default
null
配列の要素が見つからない場合に返す値
返り値 mixed
Input::cookie('foo', 'bar');

delete($index = null, $default = null)

delete メソッドは、[訳注: HTTP の] DELETE メソッドで呼び出されたときに、php://input ストリームからパラメータを読み込みます。引数なしで呼び出すと、配列をすべて取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 php://input ストリームのキー
$default 任意 配列の要素が見つからない場合に返す値
返り値 mixed
Input::delete('foo', 'bar');

put($index = null, $default = null)

put メソッドは、[訳注: HTTP の] PUT メソッドで呼び出されたときに、php://input ストリームからパラメータを読み込みます。 引数なしで呼び出すと、配列をすべて取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 php://input ストリームのキー
$default 任意 配列の要素が見つからない場合に返す値
返り値 mixed
Input::put('foo', 'bar');

patch($index = null, $default = null)

patch メソッドは、[訳注: HTTP の] PATCH メソッドで呼び出されたときに、php://input ストリームからパラメータを読み込みます。 引数なしで呼び出すと、配列をすべて取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 php://input ストリームのキー
$default 任意 配列の要素が見つからない場合に返す値
返り値 mixed
Input::patch('foo', 'bar');

get($index = null, $default = null)

get メソッドは、$_GET 変数を読み込みます。引数なしで呼び出すと、配列をすべて取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 $_GET 配列のキー。多次元配列には、階層をドット (.) で区切ることでアクセスできます。
$default 任意 配列の要素が見つからない場合に返す値
返り値 mixed
Input::get('foo', 'bar');

// 深い階層にも同様にアクセスできます。
// 次のコードは $_GET['somevar']['foo']['bar'] を返します。
Input::get('somevar.foo.bar');

post($index = null, $default = null)

post メソッドは、$_POST 変数を読み込みます。引数なしで呼び出すと、配列をすべて取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 $_POST 配列のキー。多次元配列には、階層をドット (.) で区切ることでアクセスできます。
$default 任意 配列の要素が見つからない場合に返す値
返り値 mixed
Input::post('foo', 'bar');

// 深い階層にも同様にアクセスできます。
// 次のコードは $_POST['somevar']['foo']['bar'] を返します。
Input::post('somevar.foo.bar');

is_ajax()

is_ajax メソッドは、コントローラが AJAX から呼び出された場合に true を返します。

静的 はい
パラメータ なし
返り値 mixed
Input::is_ajax(); // false

method($default = 'GET')

method メソッドは、コントローラの呼び出しに使用された HTTP メソッドを返します。もしヘッダー X-HTTP-Method-Override が送られていた場合、代わりに指定された方法で返されます。

静的 はい
パラメータ
引数 デフォルト 説明
$default
'GET'
デフォルトの HTTP メソッド。
返り値 string
Input::method(); // "GET"

protocol()

protocol メソッドは、コントローラの呼び出しに使用された HTTP プロトコルを返します。

静的 はい
パラメータ なし
返り値 string
Input::protocol(); // "HTTP"

ip()

ip メソッドは、ユーザのグローバル IP アドレスを返します。プロキシサーバ経由でアクセスされた場合、プロキシサーバの IP アドレスを返します。

静的 はい
パラメータ なし
返り値 string
echo Input::ip(); // 73.194.37.104 (グローバル IP アドレス)

real_ip($default = '0.0.0.0', $exclude_reserved = false)

real_ip メソッドは、ユーザの “実際の” IP アドレスを返します。プロキシサーバからのアクセスだと検知すると、プロキシサーバが付加するヘッダから、ユーザのプライベート IP アドレスを特定しようと試みます。この情報が与えられない場合、グローバル IP アドレスを返します。

静的 はい
パラメータ
引数 デフォルト 説明
$default
'0.0.0.0'
有効な IP アドレスが検知されなかったときに返す値
$exclude_reserved
false
true にすると、プライベート IP アドレスや特殊な IP アドレスのレンジは除外し、グローバル IP アドレスのみを返します。
返り値 string
echo Input::real_ip(); // 10.76.12.199 (プロキシサーバの後ろのプライベート IP アドレス)

$exclude_reserved を true にすると、以下のレンジは結果から除外されます:

IPv4:
10.0.0.0/8     // private use network (rfc1918)
172.16.0.0/12  // private use network (rfc1918)
192.168.0.0/16 // private use network (rfc1918)
0.0.0.0/8      // "this" network (rfc1700)
169.254.0.0/16 // link local network (rfc3927)
192.0.2.0/24   // test net (rfc3330)
224.0.0.0/4    // Multicast (rfc3171)
240.0.0.0/4    // Reserved for Future Use (rfc1700)

IPv6:
fc00::/7       // unique-local addresses (rfc4193)
::/128         // unspecified address (rfc4291)
::1/128        // loopback address (rfc4291)
fe80::/10      // link local unicast (rfc4291)
2001:db8::/32  // documentation addresses (rfc3849)
5f00::/8       // 6Bone
3ffe::/16      // 6Bone
::ffff:0:0/96  // IPv4-Mapped addresses (rfc4291)
2001:10::/28   // ORCHID addresses (rfc4843)
::/0           // default unicast route address

server($index = null, $default = null)

server メソッドは、$_SERVER 変数にアクセスします。 引数なしで呼び出すと、配列をすべて取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 $_SERVER 配列のキー
$default 任意 配列の要素が見つからない場合に返す値
返り値 string
Input::server('HTTP_HOST'); // "localhost:8080"

referrer($default = '')

referrer メソッドは、$_SERVER 配列からリファラを取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$default 任意 配列の要素が見つからない場合に返す値
返り値 string
Input::referrer();

user_agent($default = '')

user_agent は、$_SERVER 配列からユーザエージェントを取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$default 任意 配列の要素が見つからない場合に返す値
返り値 string
Input::user_agent();

all()

all メソッドは、GET, POST, PUT および DELETE 配列のすべてを取得します。

静的 はい
返り値 array
Input::all();

file($index = null, $default = null)

file メソッドは、FILE 配列の要素を取得します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 $_FILE 配列のキー
$default 任意 配列の要素が見つからない場合に返す値
返り値 string|array
Input::file();

param($index = null, $default = null)

param メソッドは、GET, POST, PUT または DELETE 配列のいずれかを読み込みます

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 $_GET, $_POST, $_PUT または $_DELETE 配列のキー
$default 任意 配列の要素が見つからない場合に返す値
返り値 string|array
Input::param();

extension()

extension メソッドは、現在の URI の拡張子を返します。

静的 はい
パラメータ なし
返り値 string|null
// Example URL: http://localhost/test/
echo Input::extension(); // NULL

// Example URL: http://localhost/test.html
echo Input::extension(); // 'html'

headers($index = null, $default = null)

headers メソッドは、現在のリクエストにおける特定または全ての HTTP ヘッダーを返します。

静的 はい
パラメータ
引数 デフォルト 説明
$index 任意 HTTP ヘッダーの名前。
$default 任意 指定された $index が取得できなかったときに返す値
返り値 array
// content length が取得できるかどうかを確認する
if ($headers = \Input::headers() and array_key_exists('Content-Length', $headers))
{
	echo 'このリクエストでセットされている content length は ', $headers['Content-Length'];
}

// もしくは直接取得する
if ($header = \Input::headers('Content-Length', false))
{
	echo 'このリクエストでセットされている content length は ', $header;
}