Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 URL 문자열의 매개변수(쿼리 파라미터)를 추출하는 방법

PHP에서 URL 문자열에 포함된 매개변수를 가져오려면 parse_url() 함수와 parse_str() 함수를 함께 사용하면 됩니다.

parse_url()은 URL을 스키마, 호스트, 경로, 쿼리 등의 구성 요소로 분해해 주는 함수이며, parse_str()은 쿼리 문자열을 파싱하여 키-값 형태의 배열로 만들어 주는 함수입니다. 이 두 함수를 조합하면 URL에 담긴 원하는 매개변수 값을 손쉽게 추출할 수 있습니다.

예제 1

다음은 URL 문자열에서 이메일 매개변수 값을 가져오는 예제입니다.

<?php
   $url = 'https://www.example.com/register?name=demo&email=example12@domain.com';
   $res = parse_url($url);
   parse_str($res['query'], $params);
   echo '이메일 = '.$params['email'];
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

이메일 = example12@domain.com

동작 방식 설명

코드가 실행되는 과정을 단계별로 살펴보면 다음과 같습니다.

1. parse_url($url)이 URL을 분석하여 각 구성 요소를 배열로 반환합니다. 이때 쿼리 문자열 부분은 'query' 키에 저장되며, 위 예제에서는 name=demo&email=example12@domain.com이 해당됩니다.

2. parse_str()이 이 쿼리 문자열을 파싱하여 두 번째 인자로 전달된 배열 변수 $params에 키-값 쌍으로 저장합니다.

3. 마지막으로 $params 배열에서 원하는 키('email', 'name' 등)를 지정하여 값을 출력합니다.

예제 2

이번에는 같은 URL에서 이름(name) 매개변수 값을 가져오는 예제입니다.

<?php
   $url = 'https://www.example.com/register?name=demo&email=example12@domain.com';
   $res = parse_url($url);
   parse_str($res['query'], $params);
   echo '이름 = '.$params['name'];
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

이름 = demo

참고 사항

만약 현재 접속 중인 페이지의 URL에서 매개변수를 가져오고 싶다면 별도의 파싱 없이 $_GET['매개변수명'] 슈퍼글로벌 변수를 사용하는 것이 더 간단합니다. 반면, 문자열 형태의 임의 URL을 처리해야 하는 경우에는 위에서 소개한 parse_url()parse_str() 조합이 가장 유용합니다.