Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP mb_parse_str() 함수로 GET·POST·COOKIE 데이터 손쉽게 파싱하기

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 설정을 점검해 보는 것이 좋습니다.