http_build_query() 함수는
배열이나 객체를 URL에서 사용할 수 있는 문자열 형식으로 인코딩하여 쿼리 문자열을 생성하는 함수입니다.
이 함수는 배열이나 객체를 기반으로 HTTP 요청을 생성하거나 URL을 만들 때 매우 유용하게 사용됩니다.
기본 예제
$data = array(
'name' => 'John Doe',
'age' => 30,
'city' => 'New York'
);
$queryString = http_build_query($data);
echo $queryString;
// 출력: 'name=John+Doe&age=30&city=New+York'
구문
http_build_query(
array|object $data,
string $numeric_prefix = "",
?string $arg_separator = null,
int $encoding_type = PHP_QUERY_RFC1738
): string
매개변수
$data
URL에서 사용할 수 있는 형식으로 인코딩하여 쿼리 문자열을 생성할 배열 또는 객체입니다.
- $data가 배열인 경우 간단한 1 차원 구조이거나 다른 배열을 포함할 수 있는 배열의 배열일 수 있습니다.
- $data가 객체인 경우 public 속성만 결과에 통합됩니다.
$numeric_prefix
만약 기본 배열에 숫자 인덱스가 사용되고 이 매개변수가 제공된다면, 이는 기본 배열의 요소에만 숫자 인덱스 앞에 추가됩니다. 기본 값은 빈 문자열 ('')입니다.
$arg_separator
키-값 쌍을 구분하는 인수 구분자입니다. PHP의 arg_separator.output 설정값을 사용합니다. arg_separator.output의 값은 PHP의 php.ini 파일에 설정된 값입니다. 기본으로 설정된 값은 앰퍼샌드(&)입니다. 인수를 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 GET 요청을 생성하는 경우
$params = array(
'search_query' => 'keyword',
'category' => 'books',
'sort' => 'relevance'
);
$query_string = http_build_query($params);
$url = 'https://example.com/search?' . $query_string;
// 이제 $url은 "https://example.com/search?search_query=keyword&category=books&sort=relevance"와 같은 형태가 됩니다.
API 요청을 생성하는 경우
$api_endpoint = 'https://api.example.com/data';
$api_key = 'your_api_key';
$params = array(
'api_key' => $api_key,
'action' => 'get_data',
'format' => 'json'
);
$api_url = $api_endpoint . '?' . http_build_query($params);
// $api_url은 "https://api.example.com/data?api_key=your_api_key&action=get_data&format=json"와 같은 형태가 됩니다.
HTML 양식 요소의 액션 속성을 생성하는 경우
$form_data = array(
'username' => 'user123',
'password' => 'secret',
'remember' => 1
);
$action_url = 'https://example.com/login?' . http_build_query($form_data);
// 출력: 'https://example.com/login?username=user123&password=secret&remember=1'
// 이제 HTML 양식의 <form> 요소의 action 속성에 $action_url을 설정할 수 있습니다.
참고문헌
PHP http_build_query()関数:配列やオブジェクトからURLエンコードされたクエリ文字列を生成 - codingE
http_build_query()関数は、配列やオブジェクトをURLで使用できる文字列形式にエンコードし、クエリ文字列を生成する関数です。
codingeverybody.jp
PHP http_build_query() Function – Generate URL-Encoded Query Strings from Arrays or Objects - codingCourses
The http_build_query() function encodes an array or object into a URL-compatible query string. It's especially useful when building HTTP requests or generating URLs from structured data.
coding.courses
PHP http_build_query() 함수 – 배열이나 객체를 URL로 인코딩된 쿼리 문자열 생성 - 코딩에브리바디
http_build_query() 함수는 배열이나 객체를 URL에서 사용할 수 있는 문자열 형식으로 인코딩하여 쿼리 문자열을 생성하는 함수입니다.
codingeverybody.kr