URI 클래스¶
URI 클래스는 URI 문자열에서 정보를 검색하는 데 도움이 되는 메소드를 제공합니다. URI 라우팅을 사용하는 경우 재라우팅된 세그먼트에 대한 정보도 검색할 수 있습니다.
참고
이 클래스는 시스템에 의해 자동으로 초기화되므로 수동으로 초기화할 필요가 없습니다.
클래스 레퍼런스¶
- class CI_URI¶
- segment($n[, $no_result = NULL])¶
- 매개변수:
$n (
int) – 세그먼트 인덱스 번호$no_result (
mixed) – 검색된 세그먼트를 찾을 수 없을 때 반환할 값
- 반환:
세그먼트 값 또는 찾을 수 없는 경우 $no_result 값
- 반환 형식:
mixed
특정 세그먼트를 검색할 수 있습니다. n은 검색할 세그먼트 번호입니다. 세그먼트는 왼쪽에서 오른쪽으로 번호가 매겨집니다. 예를 들어 전체 URL이 다음과 같은 경우:
http://example.com/index.php/news/local/metro/crime_is_up
세그먼트 번호는 다음과 같습니다:
news
local
metro
crime_is_up
선택적 두 번째 매개변수의 기본값은 NULL이며, 요청된 URI 세그먼트가 없을 때 이 메소드의 반환 값을 설정할 수 있습니다. 예를 들어 다음은 실패 시 숫자 0을 반환하도록 메소드에 지시합니다:
$product_id = $this->uri->segment(3, 0);
다음과 같은 코드 작성을 피하는 데 도움이 됩니다:
if ($this->uri->segment(3) === FALSE) { $product_id = 0; } else { $product_id = $this->uri->segment(3); }
- rsegment($n[, $no_result = NULL])¶
- 매개변수:
$n (
int) – 세그먼트 인덱스 번호$no_result (
mixed) – 검색된 세그먼트를 찾을 수 없을 때 반환할 값
- 반환:
라우팅된 세그먼트 값 또는 찾을 수 없는 경우 $no_result 값
- 반환 형식:
mixed
이 메소드는
segment()와 동일하지만, CodeIgniter의 URI 라우팅 기능을 사용하는 경우 재라우팅된 URI에서 특정 세그먼트를 검색할 수 있습니다.
- slash_segment($n[, $where = 'trailing'])¶
- 매개변수:
$n (
int) – 세그먼트 인덱스 번호$where (
string) – 슬래시를 추가할 위치 (‘trailing’ 또는 ‘leading’)
- 반환:
슬래시가 앞/뒤에 추가된 세그먼트 값 또는 찾을 수 없는 경우 슬래시
- 반환 형식:
string
이 메소드는
segment()와 거의 동일하지만 두 번째 매개변수를 기반으로 뒤나 앞에 슬래시를 추가합니다. 매개변수를 사용하지 않으면 뒤에 슬래시가 추가됩니다. 예시:$this->uri->slash_segment(3); $this->uri->slash_segment(3, 'leading'); $this->uri->slash_segment(3, 'both');
반환값:
segment/
/segment
/segment/
- slash_rsegment($n[, $where = 'trailing'])¶
- 매개변수:
$n (
int) – 세그먼트 인덱스 번호$where (
string) – 슬래시를 추가할 위치 (‘trailing’ 또는 ‘leading’)
- 반환:
슬래시가 앞/뒤에 추가된 라우팅된 세그먼트 값 또는 찾을 수 없는 경우 슬래시
- 반환 형식:
string
이 메소드는
slash_segment()와 동일하지만, CodeIgniter의 URI 라우팅 기능을 사용하는 경우 재라우팅된 URI의 특정 세그먼트에 슬래시를 추가할 수 있습니다.
- uri_to_assoc([$n = 3[, $default = array()]])¶
- 매개변수:
$n (
int) – 세그먼트 인덱스 번호$default (
array) – 기본값
- 반환:
연관 URI 세그먼트 배열
- 반환 형식:
array
이 메소드를 사용하면 URI 세그먼트를 키/값 쌍의 연관 배열로 변환할 수 있습니다. 다음 URI를 고려하세요:
index.php/user/search/name/joe/location/UK/gender/male
이 메소드를 사용하면 URI를 다음 프로토타입으로 연관 배열로 변환할 수 있습니다:
[array] ( 'name' => 'joe' 'location' => 'UK' 'gender' => 'male' )
첫 번째 매개변수는 오프셋을 설정할 수 있으며, URI에 일반적으로 첫 번째와 두 번째 세그먼트에 컨트롤러/메소드 쌍이 포함되므로 기본값은 3입니다. 예시:
$array = $this->uri->uri_to_assoc(3); echo $array['name'];
두 번째 매개변수는 기본 키 이름을 설정할 수 있으며, URI에 없더라도 반환된 배열에 항상 예상 인덱스가 포함됩니다. 예시:
$default = array('name', 'gender', 'location', 'type', 'sort'); $array = $this->uri->uri_to_assoc(3, $default);
URI에 기본값에 있는 값이 없으면 해당 이름의 배열 인덱스가 NULL 값으로 설정됩니다.
마지막으로, 주어진 키에 대응하는 값이 없으면(URI 세그먼트 수가 홀수인 경우) 값이 NULL로 설정됩니다.
- ruri_to_assoc([$n = 3[, $default = array()]])¶
- 매개변수:
$n (
int) – 세그먼트 인덱스 번호$default (
array) – 기본값
- 반환:
연관 라우팅된 URI 세그먼트 배열
- 반환 형식:
array
이 메소드는
uri_to_assoc()와 동일하지만, CodeIgniter의 URI 라우팅 기능을 사용하는 경우 재라우팅된 URI를 사용하여 연관 배열을 만듭니다.
- assoc_to_uri($array)¶
- 매개변수:
$array (
array) – 키/값 쌍의 입력 배열
- 반환:
URI 문자열
- 반환 형식:
string
연관 배열을 입력으로 받아 URI 문자열을 생성합니다. 배열 키가 문자열에 포함됩니다. 예시:
$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red'); $str = $this->uri->assoc_to_uri($array); // 생성 결과: product/shoes/size/large/color/red
- uri_string()¶
- 반환:
URI 문자열
- 반환 형식:
string
완전한 URI가 포함된 문자열을 반환합니다. 예를 들어 전체 URL이 다음과 같으면:
http://example.com/index.php/news/local/345
메소드는 다음을 반환합니다:
news/local/345
- ruri_string()¶
- 반환:
라우팅된 URI 문자열
- 반환 형식:
string
이 메소드는
uri_string()와 동일하지만, CodeIgniter의 URI 라우팅 기능을 사용하는 경우 재라우팅된 URI를 반환합니다.
- total_segments()¶
- 반환:
URI 세그먼트 수
- 반환 형식:
int
총 세그먼트 수를 반환합니다.
- total_rsegments()¶
- 반환:
라우팅된 URI 세그먼트 수
- 반환 형식:
int
이 메소드는
total_segments()와 동일하지만, CodeIgniter의 URI 라우팅 기능을 사용하는 경우 재라우팅된 URI의 총 세그먼트 수를 반환합니다.
- segment_array()¶
- 반환:
URI 세그먼트 배열
- 반환 형식:
array
URI 세그먼트가 포함된 배열을 반환합니다. 예시:
$segs = $this->uri->segment_array(); foreach ($segs as $segment) { echo $segment; echo '<br />'; }