
http_build_query 함수는 PHP에서 URL 인코딩을 위해 사용하는 함수입니다. 그러나 이 함수는 특정 문자열을 인코딩하지 않는 문제가 있습니다. 예를 들어, 이름이 'John Doe'인 경우, http_build_query 함수는 'John Doe'를 인코딩하지 않고 'John+Doe'로 인코딩합니다.
이 문제를 해결하기 위해서는 urlencode 함수를 사용하여 문자열을 인코딩한 후, http_build_query 함수에 전달하는 방법이 있습니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$data = array(
'name' => 'John Doe',
'age' => 30,
'interests' => array('reading', 'hiking', 'coding')
);
$name = urlencode($data['name']);
$query = http_build_query(array(
'name' => $name,
'age' => $data['age'],
'interests' => implode('+', $data['interests'])
));
echo $query; // name=John+Doe&age=30&interests=reading+hiking+coding
또는, http_build_query 함수에 세 번째 인자로 인코딩 옵션을 전달하여 인코딩을 강제할 수 있습니다.
#hostingforum.kr
php
$query = http_build_query($data, '', '&', PHP_QUERY_RFC3986);
echo $query; // name=John+Doe&age=30&interests=reading+hiking+coding
PHP_QUERY_RFC3986 옵션은 URL 인코딩을 RFC 3986에 따라 수행합니다.
2025-05-09 13:45