PHP의 mb_parse_str() 함수는 GET, POST, COOKIE로 전달된 데이터를 파싱하여 전역 변수에 값을 설정하는 데 사용됩니다. 이 함수는 URL 인코딩된 문자열을 해석하고 해당 데이터의 인코딩을 자동으로 감지한 뒤, 이를 PHP 내부 인코딩으로 변환하여 각 변수에 값을 할당합니다. 이 함수는 PHP 5.4부터 도입되었으며, PHP 7 이상 버전에서도 안정적으로 지원됩니다.
문법(Syntax)
string mb_parse_str($str_string, $array_result)
매개변수(Parameters)
mb_parse_str() 함수는 다음 두 개의 매개변수를 받습니다.
$str_string − 파싱할 URL 인코딩된 입력 데이터입니다. 쿼리 문자열 형태(key=value&key=value)로 작성됩니다.
$array_result − 파싱 결과가 저장될 배열입니다. 디코딩된 값과 문자 인코딩이 변환된 최종 값들이 이 배열의 키-값 쌍으로 담기게 됩니다.
반환값(Return Values)
mb_parse_str() 함수는 데이터 파싱에 성공하면 true를, 실패하면 false를 반환합니다. 즉, 입력 문자열이 정상적으로 해석되어 결과 배열에 값이 채워지면 true가 반환됩니다.
예제 1: 기본 사용법
다음 예제는 URL 인코딩된 문자열을 mb_parse_str()로 파싱하여 배열에 담는 과정을 보여줍니다.
<?php $str_string = "user_id=123 &email=xyz@gmail.com &country=India"; $array_result; // 데이터 파싱 mb_parse_str($str_string, $array_result); print_r($array_result); ?>
출력 결과(Output)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Array ( [user_id] => 123 [email] => xyz@gmail.com [country] => India )
참고 사항
mb_parse_str()은 멀티바이트 문자열을 다루므로, 한글이나 일본어 등 비ASCII 문자가 포함된 폼 데이터를 처리할 때 특히 유용합니다. 내부 인코딩은 mb_internal_encoding() 함수로 확인하거나 지정할 수 있으며, 인코딩 감지가 정확하지 않을 경우 php.ini의 mbstring.internal_encoding 설정을 점검해 보는 것이 좋습니다.