본문 바로가기
Developer/PHP

PHP URL Paramater, Query Parsing - parse_url, parse_str

by 김씩씩 2021. 1. 10.

PHP URL Paramater Parsing - parse_url, parse_str 

 

PHP에서 URI, URL 파라미터 값을 파싱하여 사용하는 방법을 알려드리도록 하겠습니다.

UTM 값을 얻어내는 등 여러곳에 많이 유용하게 사용될 함수라 정리하려고 합니다.

 

$uri = "https://jsikim1.tistory.com/category/Developer?param1=value1&param2=value2#id1";

$query = parse_url($uri, PHP_URL_QUERY);
var_dump($query);

parse_str($query, $params);
var_dump($params);

/* *** 출력 ***
string(27) "param1=value1&param2=value2"
array(2) {
  ["param1"]=>
  string(6) "value1"
  ["param2"]=>
  string(6) "value2"
}
*/

parse_url()의 첫번째 Parameter에 URI를 입력하고, 두번째 Parameter에 "PHP_URL_QUERY" 입력하여 사용하면,

query 부분만 String으로 가져올 수 있습니다.

 

그리고 그 값을 parse_str()에 첫번째 Parameter로 입력하고, 파싱한 값을 변수명을 두번째 Parameter로 입력하여 사용하면,

파싱된 값을 얻을 수 있습니다.

 

※ 주의할 점

$uri = "https://jsikim1.tistory.com/category/Developer?param1=value1&param2=value2&param2=value3#id1";

$query = parse_url($uri, PHP_URL_QUERY);
var_dump($query);

parse_str($query, $params);
var_dump($params);


/* *** 출력 ***
string(41) "param1=value1&param2=value2&param2=value3"
array(2) {
  ["param1"]=>
  string(6) "value1"
  ["param2"]=>
  string(6) "value3"
}
*/

위와 같이 키 값이 같은 Parameter가 2개이상 존재한다면 해당 키값의 값은 뒤에 존재하는 값으로 설정됩니다.

유의하여 사용하시기 바랍니다.

 

 

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글