CI 코드

제목 [예제] 세그먼트 주소 배열로 저장후 응용편
글쓴이 ci세상 작성시각 2009/09/04 12:35:08
댓글 : 0 추천 : 0 스크랩 : 0 조회수 : 21063   RSS


용도 : 세그먼트 주소를 배열로 담아서 가공할때 사용하게 됩니다. (한글포럼 소스중 일부분들입니다.)

목적 : CI의 세그먼트 주소체계를 어려워 하시는 분들을 위하여 어떻게 배열로 담아서 어떻게 재사용하는지 정리해 드렸습니다.^^


참조 : http://codeigniter-kr.org/user_guide/libraries/uri.html

예제 : http://domain.com/member/list/id/test

######## 코드 1 : 한글포럼 사용코드 #######
 

### 공통 라이브러리에 저장
	function segment_explode($seg) {
		$len = strlen($seg);
		if(substr($seg, 0, 1) == '/') {
			$seg = substr($seg, 1, $len);
		}
		$len = strlen($seg);
		if(substr($seg, -1) == '/') {
			$seg = substr($seg, 0, $len-1);
		}
		$seg_exp = explode("/", $seg);
		return $seg_exp;
	}

### 컨트롤러에서 사용
$this->seg_exp = $this->common->segment_explode($this->uri->uri_string());

print_r($this->seg_exp);	

=> 결과 : Array ( [0] => member [1] => list [2] => id [3] => test )

######## 코드 2 #######
 

$this->seg_exp = $this->uri->segment_array()

$print_r($this->seg_exp);	
=> 결과 : Array ( [1] => member [2] => list [3] => id [4] => test )

######## 코드 3 #######
 

$this->seg_exp = array_values($this->uri->segment_array())

$print_r($this->seg_exp);

=> 결과 : Array ( [0] => member [1] => list [2] => id [3] => test ) 


위의 결과에서 보듯이 코드 1, 3번처럼 사용하시길 추천해 드립니다.


######### 출력테스트1 : id값중 test 찍기 ########
 

		$arr_key = array_keys($this->seg_exp, "id");
		$arr_val = $arr_key[0] + 1;
		
		echo $this->seg_exp[$arr_val];

=> 결과 : test

######### 출력테스트2 : id/test 제외하기 ########
 

$this->url_seg = $this->seg_exp;
$arr_s = array_search('page', $this->url_seg);
array_splice($this->url_seg, $arr_s, 2);

$urls = implode('/', $this->url_seg);

echo $uruls;




















 
=> 결과 : member/list
 다음글 [예제] 페이지네이션 페이지번호 무조건 끝으로
 이전글 [팁] 동적스크립트 dynamic 연동 (3)

댓글

없음