2010-05-12 5 views
0

어떻게 이런 식으로 if 문을 만들 수 있습니까? 기본적으로 URI 클래스를 사용하여 어떤 세그먼트에 값이 있는지 확인하는 방법은 무엇입니까? Codeigniter : URI 세그먼트

$segment = value_of_any_segment; 
if($segment == 1{ 
    do stuff 
} 

나는이 꽤 초등학교 알고,하지만 난 완전히 URI 클래스를 이해하지 ...

답변

7

귀하의 질문은 나에게 조금 불분명하지만, 내가 도와하려고합니다. 특정 세그먼트가 존재하는지 또는 특정 세그먼트가 있는지 여부를 결정하는 방법에 대해 궁금하십니까?

알고 계신 것처럼 URI class을 사용하여 특정 URI 세그먼트에 액세스 할 수 있습니다. 예를 들어 yoursite.com/blog/article/123을 사용하면 blog이 첫 번째 세그먼트이고 article이 두 번째 세그먼트이고 123이 세 번째 세그먼트입니다. 당신은 각 구성 할 수 있습니다 다음 $this->uri->segment(n)

당신을 사용하여 액세스하는 경우이 같은 문 : 도움이

// if segment 2 exists ("articles" in the above example), do stuff 
if ($this->uri->segment(2)) { 
    // do stuff 
} 

// if segment 3 ("123" in the above example) is equal to some value, do stuff 
if ($this->uri->segment(3) == $myValue) { 
    // do stuff 
} 

희망! 그렇지 않은 경우 알려 주시면 추가 정보를 정교하게 제공 할 수 있습니다.

편집 :

특정 문자열이 URI의 세그먼트에 을 표시 여부를 결정해야하는 경우, 당신은 같은 것을 할 수 있습니다

참고는 strpos()에 대한
// get the entire URI (using our example above, this is "/blog/article/123") 
$myURI = $this->uri->uri_string() 

// the string we want to check the URI for 
$myString = "article";  

// use strpos() to search the entire URI for $myString 
// also, notice we're using the "!==" operator here; see note below 
if (strpos($myURI, $myString) !== FALSE) { 
    // "article" exists in the URI 
} else { 
    // "article" does not exist in the URI 
} 

(PHP 설명서에서) :

이 함수는 부울를 반환 할 수 있습니다.거짓이지만 이 아닌 부울 값 FALSE (예 : 0 또는 "")로 반환 될 수도 있습니다. 자세한 내용은 부울의 섹션을 참조하십시오. 이 함수의 반환 값을 테스트하려면 === 연산자를 사용하십시오.

제 편집이 도움이되기를 바랍니다. 내가 정교 할 수 있는지 알려줘.

+0

대단한 답변입니다. –

+0

감사합니다, 콜린! 너는 바른 길을 가고있다! 귀하의 대답은 내 문제를 해결하지만 그것이 uri_to_assoc (n)을 사용할 수 있는지 궁금합니다. –

+0

@ 케빈 : 당신은 정교 할 수 있습니까? 특정 문자열이 URL의 모든 세그먼트 *에 있는지 확인하려고합니까? –

관련 문제