http_build_query()
함수 사용법
http_build_query()
함수는
배열 또는 객체를 URL에서 사용할 수 있는 형식으로 인코딩하여 쿼리 문자열을 생성하는 함수입니다.
http_build_query()
함수는 HTTP 요청을 생성하거나 URL을 만들 때 유용하게 사용됩니다. 주로 웹 애플리케이션에서 GET 요청을 생성하거나 API 호출을 할 때 많이 활용됩니다.
http_build_query()
함수의 형식은 다음과 같습니다.
구문
매개변수
$data
URL에서 사용할 수 있는 형식으로 인코딩하여 쿼리 문자열을 생성할 배열 또는 객체입니다.
$data
가 배열인 경우 간단한 1 차원 구조이거나 다른 배열을 포함할 수 있는 배열의 배열일 수 있습니다.$data
가 객체인 경우public
속성만 결과에 통합됩니다.
$numeric_prefix
만약 기본 배열에 숫자 인덱스가 사용되고 이 매개변수가 제공된다면, 이는 기본 배열의 요소에만 숫자 인덱스 앞에 추가됩니다. 기본 값은 빈 문자열 (""
)입니다.
이는 PHP나 다른 CGI 응용 프로그램에서 데이터를 나중에 디코딩할 때 유효한변수 이름을 허용하기 위한 것입니다.
예를 들어, 다음과 같은 배열이 있다고 가정해 보겠습니다.
이 배열을 http_build_query()
함수에 전달하고 두 번째 인수로 my_
를 설정하면 다음과 같은 쿼리 문자열이 생성됩니다.
숫자 인덱스 이름 앞에 my_
접두어가 추가되어 PHP 또는 다른 CGI 응용 프로그램에서 변수 이름으로 사용할 수 있습니다. 두 번째 인수를 설정하지 않으면 숫자 인덱스 이름은 그대로 유지됩니다.
$arg_separator
키-값 쌍을 구분하는 인수 구분자입니다. PHP의 arg_separator.output 설정값을 사용합니다. arg_separator.output의 값은 PHP의 php.ini 파일에 설정된 값입니다. 기본으로 설정된 값은 앰퍼샌드(&
)입니다. 인수를 null
로 설정하면 키-값 쌍을 구분하지 않습니다. 즉 구분자를 생성하지 않습니다.
예를 들어, 다음과 같은 배열이 있다고 가정해 보겠습니다.
이 배열을 http_build_query()
함수에 전달하고 세 번째 인수를 설정하지 않으면 다음과 같은 쿼리 문자열이 생성됩니다. 기본 구분자인 앰퍼샌드(&
)가 생성됩니다.
세 번째 인수로 null
설정하면 다음과 같은 쿼리 문자열이 생성됩니다. 구분자를 생성하지 않습니다.
세 번째 인수로 쉼표(,
)를 설정하면 다음과 같은 쿼리 문자열이 생성됩니다.
세 번째 인수로 세미콜론(;
)을 설정하면 다음과 같은 쿼리 문자열이 생성됩니다.
$encoding_type
인코딩 형식을 설정합니다. 기본 값은 PHP_QUERY_RFC1738
입니다.
PHP_QUERY_RFC1738
은 PHP에서 제공하는 상수로 이 상수로 지정하면 RFC 1738과 application/x-www-form-urlencoded 미디어 타입에 따라 인코딩을 수행합니다.urlencode()
함수처럼 알파벳 대소문자, 숫자,-
,_
,.
문자를 제외한 문자를%
기호와 16진수 코드로 인코딩됩니다. 공백은 공백을+
로 인코딩됩니다.PHP_QUERY_RFC3986
은 PHP에서 제공하는 상수로 이 상수로 지정하면 RFC 3986에 따라 인코딩을 수행합니다.rawurlencode()
함수처럼 알파벳 대소문자, 숫자,-
,.
,_
,~
문자를 제외한 문자를%
기호와 16진수 코드로 인코딩됩니다. 공백은%20
으로 인코딩됩니다.
예를 들어, 다음과 같은 배열이 있다고 가정해 보겠습니다.
이 배열을 http_build_query()
함수에 전달하고 네 번째 인수로 PHP_QUERY_RFC1738
을 설정하면 다음과 같은 쿼리 문자열이 생성됩니다.
공백이 +
기호로 인코딩되었습니다.
네 번째 인수를 PHP_QUERY_RFC3986
으로 설정하면 다음과 같은 쿼리 문자열이 생성됩니다.
공백이 %20
으로 인코딩되었습니다.
예시 사용법
다음의 예시를 통해서 http_build_query()
함수의 사용법을 살펴보겠습니다.
HTTP GET 요청을 생성하는 경우
웹 애플리케이션에서 서버로 데이터를 전달하기 위해 HTTP GET 요청을 생성해야 할 때 http_build_query()
함수가 유용합니다. 예를 들어, 검색어나 필터링 조건을 URL에 포함하여 서버로 전송할 때 사용할 수 있습니다.
API 요청을 생성하는 경우
원격 API에 요청을 보낼 때, API 엔드포인트 및 요청 매개변수를 포함하는 URL을 생성할 수 있습니다.
HTML 양식 요소의 액션 속성을 생성하는 경우
웹 양식을 만들 때 action
속성에 URL을 설정해야 하는데, http_build_query()
함수를 사용하여 양식 데이터를 URL에 포함할 수 있습니다.