PHP URL 인코딩 함수
PHP에서 URL 인코딩을 수행하는 함수는 크게 세 가지가 있습니다.
urlencode()
함수, rawurlencode()
함수, 그리고 http_build_query()
함수입니다. 이 함수들은 URL 문자열을 생성하거나 처리하는 데 사용되는 서로 다른 방법을 제공합니다. 각 함수의 특징과 사용 방법을 비교해보겠습니다.
같이 보기
PHP URL 인코딩 함수 비교
urlencode()
: URL 인코딩의 가장 기본적인 함수입니다. 공백을+
로, 특수 문자를%
기호와 16진수 코드로 인코딩합니다.rawurlencode()
: 주어진 문자열을 RFC 3986에 따라 URL에 사용할 수 있도록 인코딩합니다.urlencode()
함수와 비슷하지만, 공백을%20
으로 인코딩합니다.http_build_query()
: 배열 또는 객체를 URL에서 사용할 수 있는 형식으로 인코딩하여 쿼리 문자열을 생성하는 함수입니다.
각 함수의 사용 목적과 특징을 비교하면 다음과 같습니다.
비교 항목 | urlencode() |
rawurlencode() |
http_build_query() |
---|---|---|---|
사용 목적 | application/x-www-form-urlencoded 미디어 유형과 동일한 방식으로 인코딩하기 때문에 주로 HTML 양식에서 수집한 데이터를 URL의 쿼리 문자열에 추가하거나 다른 페이지로 전달할 때 사용 | 특수 문자를 엄격하게 인코딩하고 공백을 %20 로 인코딩하기 때문에 URL이 손상되는 것을 방지하기 위해 사용하며, 주로 정한 요구 사항이나 URL 구문 규칙을 엄격하게 준수해야 하는 경우(예를 들어, 파일 경로를 URL에 추가할 때)에 사용 |
연관 배열을 쿼리 문자열로 변환하고 URL 인코딩 매개 변수에 설정값으로 인코딩을 자동 처리하기 때문에 주로 HTTP 요청을 생성하거나 URL을 만드는 등 주로 웹 애플리케이션에서 GET 요청을 생성하거나 API 호출을 할 때 사용 |
인코딩 | 알파벳 대소문자, 숫자, - , _ , . 문자를 제외한 문자를 % 기호와 16진수 코드로 인코딩 |
알파벳 대소문자, 숫자, - , . , _ , ~ 문자를 제외한 문자를 % 기호와 16진수 코드로 인코딩 |
네 번째 매개변수인 enc_type 에 따라 달라짐. PHP_QUERY_RFC1738 인 경우 (기본 값) urlencode() 함수처럼 알파벳 대소문자, 숫자, - , _ , . 문자를 제외한 문자를 % 기호와 16진수 코드로 인코딩되고, PHP_QUERY_RFC3986 인 경우 rawurlencode() 함수처럼 알파벳 대소문자, 숫자, - , . , _ , ~ 문자를 제외한 문자를 % 기호와 16진수 코드로 인코딩됨 |
공백 문자 처리 | 공백을 + 로 인코딩 |
공백을 %20 으로 인코딩 |
네 번째 매개변수인 enc_type 에 따라 달라짐. PHP_QUERY_RFC1738 인 경우 (기본 값) urlencode() 함수처럼 공백 문자는 + 로 인코딩되고, PHP_QUERY_RFC3986 인 경우 http_build_query() 함수처럼 공백 문자는 %20 으로 인코딩됨 |
다음은 각 함수를 사용하는 방법입니다.
사용 목적에 따른 인코딩 함수 사용 예제
각 함수의 사용 목적에 따른 예제를 살펴보겠습니다.
urlencode()
함수: URL에 포함될 문자열을 인코딩
HTML 양식에서 수집한 데이터를 URL의 쿼리 문자열에 추가할 때 사용합니다.
rawurlencode()
함수: 웹 서버에서 이미지 파일의 경로를 URL에 추가해야 하는 경우
공백을 %20
로 인코딩하기 때문에 URL이 손상되는 것을 방지하기 위해 사용합니다.
http_build_query()
함수: API 요청을 생성하는 경우
원격 API에 요청을 보낼 때, API 엔드포인트 및 요청 매개변수를 포함하는 URL을 생성할 수 있습니다.
같이 보기
- PHP urlencode() 함수 – 문자열을 URL 인코딩
- PHP rawurlencode() 함수 – RFC 3986에 따른 URL 인코딩
- PHP http_build_query() 함수 – 배열 또는 객체를 URL 인코딩하여 쿼리 문자열 생성
- PHP urlencode()로 인코딩된 URL 디코딩 – urldecode() 함수
- PHP rawurlencode()로 인코딩된 URL 디코딩 – rawurldecode() 함수
- PHP parse_str() 함수 – URL 쿼리 문자열 디코딩, 변수로 구문 분석
- PHP URL 디코딩 함수 비교