$_SERVER[QUERY_STRING] 특정 파라미터 삭제 출력하기

munilive
munilive

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");
munilive

munilive

Backend Application Developer

Share

Comments

Related Posts

그누보드4 아이디 변경 함수 - 모든 테이블의 아이디를 변경

그누보드4 아이디 변경 함수 - 모든 테이블의 아이디를 변경

그누보드 사용시 아이디값을 이메일등으로 사용하거나 아이디를 변경하게 하도록 하는 사이트들이 존재 한다. 그누보드에서는 아이디 값이 게시판테이블에서나 포인트등 에서 회원을 구분하…

munilive munilive ·
GD를 이용한 기본기능 썸네일,CROP,CROP썸네일,텍스트 만들기에 기능추가

GD를 이용한 기본기능 썸네일,CROP,CROP썸네일,텍스트 만들기에 기능추가

GD Library를 이용한 Thumbnail 생성 클래스입니다. 기본적인 이미지 리사이징 및 리사이징과 동시에 비율에 맞춰 Crop 하는 기능이 있고, 워터마크를 추가 할 수…

munilive munilive ·
php number format for javascript

php number format for javascript

PHP 함수로 존재하는 함수를 함수로 구현하였습니다. 사용방법은 php와 동일합니다.

munilive munilive ·