parse_str()
함수 사용법
parse_str()
함수는
URL에서 사용할 수 있는 형식으로 인코딩된 쿼리 문자열을 디코딩하여 변수로 구문 분석하는데 사용하는 함수입니다.
주로 http_build_query()
함수로 인코딩 된 쿼리 문자열을 디코딩하여 변수로 구문 분석하는데 사용합니다.
http_build_query()
함수는
배열 또는 객체를 URL에서 사용할 수 있는 형식으로 인코딩하여 쿼리 문자열을 생성하는 함수입니다.
parse_str()
함수는 URL에서 사용할 수 있는 형식으로 인코딩된 쿼리 문자열을 디코딩하여 변수로 구문 분석하는데 사용하는 함수입니다. 주로 http_build_query()
함수로 인코딩된 URL 쿼리를 디코딩합니다. http_build_query()
함수는 주로 배열을 URL 쿼리 문자열로 변환할 때 사용되며, parse_str()
함수는 디코딩하는 역할을 합니다.
parse_str()
함수는 http_build_query()
함수로 인코딩된 URL 쿼리 문자열을 디코딩하여 키-값 쌍으로 변환하고, 이를 배열 또는 변수에 할당합니다.
따라서, parse_str()
함수와 http_build_query()
함수는 서로 반대되는 역할을 수행한다고 할 수 있습니다.
parse_str()
함수의 형식은 다음과 같습니다.
구문
매개변수
$string
디코딩할 문자열입니다.
&$result
참조 변수입니다. 이 매개변수를 설정하면 디코딩된 키-값 쌍이 저장될 배열입니다.
PHP 7.2부터 매개변수가 없으면 parse_str()
함수를 사용하는 것이 권장되지 않습니다. 이는 이 방식의 사용이 보안상 위험할 수 있기 때문입니다. 악의적인 사용자가 URL 인코딩된 쿼리 문자열에 삽입한 코드가 실행될 수 있습니다.
더욱이, PHP 8.0.0 버전부터는 &$result
매개변수가 필수로 지정되어야 하므로, 이 함수를 사용할 때 반드시 &$result
매개변수를 제공해야 합니다.
주의하세요!
두 번째 매개변수를 사용하지 않고 이 함수를 사용하는 것은 매우 권장되지 않으며, PHP 7.2 버전부터는 비권장(DISCOURAGED)되며, PHP 8.0.0 버전부터는 두 번째 매개변수 &$result
가 필수입니다.
PHP 버전 | 설명 |
---|---|
8.0.0 | &$result 매개변수는 더 이상 옵션이 아니라 필수 매개변수입니다. |
7.2.0 | 두 번째 매개변수 없이 parse_str() 를 사용하는 경우 E_DEPRECATED 알림을 발생시킵니다. |
반환 값
반환 값이 없습니다.
사용 예시
이 예제에서는 권장된 방법과 비권장된 방법 두 가지를 모두 보여주고 있습니다. 권장된 방법은 parse_str()
함수의 결과를 $parsed_data
배열에 저장하여 사용하는 것이며, 비권장된 방법은 parse_str()
함수를 사용하여 변수를 직접 생성하고 값을 할당하는 방법입니다. 권장된 방법을 사용하는 것이 안전하고 가독성이 더 좋습니다.
같이 보기
- PHP urlencode() 함수 – 문자열을 URL 인코딩
- PHP rawurlencode() 함수 – RFC 3986에 따른 URL 인코딩
- PHP http_build_query() 함수 – 배열 또는 객체를 URL 인코딩하여 쿼리 문자열 생성
- PHP urlencode()로 인코딩된 URL 디코딩 – urldecode() 함수
- PHP rawurlencode()로 인코딩된 URL 디코딩 – rawurldecode() 함수
- PHP URL 인코딩 함수 비교
- PHP URL 디코딩 함수 비교
- PHP preg_split() 함수 - 개념 정리 및 사용 예제
- PHP parse_url() 함수 - URL 구성 요소 분석