$_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

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

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

GD 라이브러리를 이용한 Thumbnail 생성 클래스 코드 설명입니다.

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

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

그누보드4에서 아이디를 변경할 경우 모든 테이블에 적용하는 방법과 예제 코드이다.

munilive munilive ·
php 생년월일로 별자리 구하기

php 생년월일로 별자리 구하기

사용자의 생년월일을 이용해서 별자리 코드를 반환하는 PHP 함수 예제입니다.

munilive munilive ·