> Hello World !!!

     

@syaku

PHP 파라메터 문자열 제어 : Parameter QueryString Controller


written by Seok Kyun. Choi. 최석균

“ PHP Parameter QueryString Controller ”


PHP 5.3 에서 사용한 소스입니다.


URL 을 넘겨받아 온 파라메터 값을 원하는 형태로 간결하게 제어하는 함수입니다.

똑같은 파라메터를 전달하고 필요한 파라메터만 전달해야 할 경우 주로 사용하게 됩니다.

게시판을 예를들어 목록페이지에서 글보기를 클릭하여 이동후 다시 목록으로 돌아갈때, 필요한 파라메터만 가지고 이동할때 유용합니다.


파라메터를 임의적으로 문자열 변경하기


# 소스


 /**
  @class Commons ver 1.0
  @brief PHP Commons

  * registered date 2014-01-23
  * programmed by Seok Kyun. Choi. 최석균
  * http://syaku.tistory.com
  */

  /**
  * Request QueryString 을 이용하여 임의의 문자열을 변형함
  *
  * @param string 조합할 QueryString
  * @param string 시작 문자열 지정 (? or &)
  * @param string 메소드 지정
  * @return string
  */
  function _param_get($query,$char = NULL,$method = 'GET') {
    $parameter = ($method == 'GET') ? $_GET: $_POST;
    $ret = array();
    $output = array();

    if ( !empty($query) ) {
      parse_str($query,$output);
      foreach(array_keys($output) as $key){
        if ( !empty($output[$key]) ) {
          $ret[$key] = $output[$key];
        } else {
          unset($parameter[$key]);
        }
      }

    }

    $param = http_build_query(array_merge($parameter, $ret));
    if ( $char != NULL && !empty($param) ) { $param = $char . $param; }
    return $param;
  }


# 사용 예제


** URL 정보는 예제로 사용하기 위해 임의적으로 부여하였습니다.


- 현재 페이지의 URL 정보 : http://syaku.tistory.com/index.php?prodid=S10000846247&siteid=SW&pcate=&order=1


1) 현재 파라메터를 가져오기

echo _param_get();


결과 prodid=S10000846247&siteid=SW&pcate=&order=1


2) prodid 값을 syaku 변경

echo _param_get('&prodid=syaku');


결과 prodid=syaku&siteid=SW&pcate=&order=1


3) prodid 값을  제거하고 pcate 값을 50 으로 변경

echo _param_get('&prodid=&pcate=50');


결과 siteid=SW&pcate=50&order=1



파라메터를 원하는 문자열만 가져오기


# 소스


 /**
  @class Commons ver 1.0
  @brief PHP Commons

  * registered date 2014-01-23
  * programmed by Seok Kyun. Choi. 최석균
  * http://syaku.tistory.com
  */

  /**
  * Request QueryString 에서 필요한 문자열만 추출
  *
  * @param string 조합할 QueryString
  * @param string 시작 문자열 지정 (? or &)
  * @param string 메소드 지정
  * @return string
  */
  function _param_pick($query,$char = NULL,$method = 'GET') {
    if ( empty($query) ) return NULL;
    $parameter = ($method == 'GET') ? $_GET: $_POST;

    $ret = array();
    $output = array();

    parse_str($query,$output);
    foreach(array_keys($output) as $key){

      if ( !empty($output[$key]) ) {
        $ret[$key] = $output[$key];
      } else {
        $is = array_key_exists ($key, $parameter);
        
        if ($is) {
          $ret[$key] = $parameter[$key];
        }
      }
    }

    $param = http_build_query($ret);
    if ( $char != NULL && !empty($param) ) { $param = $char . $param; }
    return $param;
  }


# 사용 예제


** URL 정보는 예제로 사용하기 위해 임의적으로 부여하였습니다.


- 현재 페이지의 URL 정보 : http://syaku.tistory.com/index.php?prodid=S10000846247&siteid=SW&pcate=&order=1


1) siteid 값 가져오기

echo _param_pick('&siteid=');


결과 siteid=SW


2) prodid 값을 syaku 변경하고 order 값 가져오기

echo _param_pick('&prodid=syaku&order=');


결과 prodid=syaku&order=1




posted syaku blog

Syaku Blog by Seok Kyun. Choi. 최석균.

http://syaku.tistory.com