CI_URI
CI_URIクラスの機能のほとんどは、バックグラウンドで「CI_Router」クラス内で利用されます。
更に、クライアントからリクエストされるURIの情報及び、URIルーティング後のパス情報を取得する機能を
ユーザに提供しています。
segment($n, $no_result = FALSE)
スラッシュ「/」で区切られたリクエストURIパス情報は左から第一セグメント・第二セグメントとそれぞれ第Nセグメントと呼びます。 このメソッドはリクエストURIパスのN番目のセグメント情報を取得します。
第一引数に取得したいセグメント番号を指定します。
第二引数には取得できなかった場合のデフォルト値を指定することができます。
- リクエストURI
- 第三セグメント取得
- デフォルト指定
echo $segment_3;
// param
echo $segment_4;
// empty
rsegment($n, $no_result = FALSE)
このメソッドは「CI_Router」クラスにより再URIルーティング後の URIパスからセグメント情報を取得します。 使い方は「segument()」メソッドと同じになります。
- routes.php
- リクエストURI
- 第三セグメント取得
echo $segment_3;
// data
slash_segment($n, $where = 'trailing')
slash_rsegment($n, $where = 'trailing')
「segment()」メソッドと同様にリクエストURIパスのセグメント情報を取得しますが、セグメント文字列の前、
後ろ、または前後両方に「/」スラッシュを付けて取得します。
「slash_segment()」はリクエストURIパスから、「slash_rsegment()」はURIルーティング後のパスから取得します。
第一引数にセグメント番号、第二引数にスラッシュを付ける場所を指定します。 スラッシュを付ける場所を指定する文字列は以下のようになります。
- trailing
- leading
- 上記2つ以外の文字列
- リクエストURI
- 第三セグメント取得
- リクエストURI
- グメント取得
- リクエストURI
- グメント数取得
- リクエストURI
- URIパス文字列取得
- リクエストURI
- 連想配列で取得
- 連想配列
- URIパス生成
スラッシュを後ろに付けます。
スラッシュを前に付けます。
スラッシュを前後両方に付けます。
echo $segment_3;
//=> param/
$segment_3 = $this->uri->slash_segment(3, 'leading');
echo $segment_3;
//=> /param
$segment_3 = $this->uri->slash_segment(3, 'both');
echo $segment_3;
//=> /param/
segment_array()
rsegment_array()
一番上に戻る
「segment_array()」はリクエストURIパスの各セグメントを分割して配列で返します。
「rsegment_array()」はURIルーティング後のパスを各セグメントに分割して配列で返します。
print_r($segment);
/*
Array
(
[0] => my_class
[1] => my_action
[2] => param
)
*/
total_segments()
total_rsegments()
一番上に戻る
「total_segments()」はリクエストURIパスのセグメント数、「ruri_string()」はURIルーティング後のセグメント数を返します。
echo $seg_count;
//=> 3
uri_string()
ruri_string()
一番上に戻る
「uri_string()」はリクエストURIのパス文字列、「ruri_string()」はURIルーティング後のパス文字列を返します。
echo $uri_path;
//=> /my_class/my_action/param/
uri_to_assoc($n = 3, $default = array())
ruri_to_assoc($n = 3, $default = array())
一番上に戻る
「uri_to_assoc()」はリクエストURIパス、「ruri_to_assoc()」はルーティング後のパスから
セグメント情報を連想配列として返します。
第一引数に取得するセグメントの開始番号を指定します。
指定した開始番号から連想配列の「インデックスキー」「値」の順番で取得していきます。
pring_r($segments);
/*
Array
(
[key_1] => data_1
[key_2] => data_2
)
*/
assoc_to_uri($array) 一番上に戻る
連想配列から、URIパス文字列を生成して返します。
'key_1' => 'data_1',
'key_2' => 'data_2',
)
echo $uri_path;
//=> key_1/data_1/key_2/data_2