$_SERVER[QUERY_STRING] 특정 파라미터 삭제 출력하기
PHP의 $_SERVER[QUERY_STRING]를 이용하여 Get 방식의 Method 처리를 할 경우 특정 파라미터를 제거하거나 추가해 줘야 하는 경우가 있다.
보통 게시판의 페이징 작업을 할 때 주로 사용되는데, 동일한 Query String 문자열에서 페이징에 해당하는 page 값만 제거하고 다시 붙여넣고 싶을 때 사용하면 좋다.
class MakeQueryString {
// 배열로 넘어온 값을 get 형식으로 변경
function pack($params, $name=null) {
$ret = "";
foreach($params as $key=>$val) {
if(is_array($val)) {
if($name==null) $ret .= $this->pack($val, $key);
else $ret .= $this->pack($val, $name."[$key]");
} else {
if($name!=null) $ret .= $name."[]"."=$val&";
else $ret .= "$key=$val&";
}
}
return $ret;
}
// $this->unpack($_SERVER[QUERY_STRING], "제외할 파라미터 복수의 파라미터는 (,)를 구분자로 사용");
function unpack($querystring, $exception="") {
$exception = preg_replace("/[\s]+/", "", $exception);
if($exception) {
parse_str($querystring, $qs);
$newqs = Array();
foreach($qs AS $k => $v) {
if(array_search($k, preg_split("/,/", $exception)) === false) {
$newqs[$k] = $v;
}
}
return $this->pack($newqs);
} else {
return $querystring;
}
}
}
// 예제
// 쿼리스트링 가져오기
$_cls_mkqs = new MakeQueryString();
$get_query_string = $_cls_mkqs->pack($_GET);
$get_query_string = $_cls_mkqs->unpack($get_query_string, "x,y"); 이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스 에 따라 이용할 수 있습니다.
Comments
Related Posts
그누보드4 아이디 변경 함수 - 모든 테이블의 아이디를 변경
그누보드 사용시 아이디값을 이메일등으로 사용하거나 아이디를 변경하게 하도록 하는 사이트들이 존재 한다. 그누보드에서는 아이디 값이 게시판테이블에서나 포인트등 에서 회원을 구분하…
GD를 이용한 기본기능 썸네일,CROP,CROP썸네일,텍스트 만들기에 기능추가
GD Library를 이용한 Thumbnail 생성 클래스입니다. 기본적인 이미지 리사이징 및 리사이징과 동시에 비율에 맞춰 Crop 하는 기능이 있고, 워터마크를 추가 할 수…