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

세그먼트 번호는 다음과 같습니다:

  1. news

  2. local

  3. metro

  4. 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');

반환값:

  1. segment/

  2. /segment

  3. /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 />';
}
rsegment_array()
반환:

라우팅된 URI 세그먼트 배열

반환 형식:

array

이 메소드는 segment_array()와 동일하지만, CodeIgniter의 URI 라우팅 기능을 사용하는 경우 재라우팅된 URI의 세그먼트 배열을 반환합니다.