php에서 parse_str 및 mb_parse_str는 URL에 인코딩 된 쿼리 문자열을 구문 분석하고 변수로 변환하는 데 사용되는 함수입니다. 두 기능은 비슷하지만, 특히 멀티 바이트 문자 세트 (예 : 중국어, 일본어 등)를 지원하는 데있어 몇 가지 주요 차이점이 있습니다. 이 기사에서는 차이점과 사용 시나리오에 대해 자세히 설명합니다.
parse_str 는 PHP에서 일반적으로 사용되는 기능으로 URL 인코딩 쿼리 문자열을 구문 분석하고 PHP 변수로 변환합니다. 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">parse_str</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> &</span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">void</span></span><span>
</span></span>매개 변수 :
$ str : 구문 분석 할 URL 인코딩 쿼리 문자열.
$ 배열 (선택 사항) :이 매개 변수가 제공되면 해상도 결과는 연관 배열 형태로 저장됩니다.
반품 값 :
이 함수는 값을 반환하지 않으며 참조를 통해 $ 배열 매개 변수를 직접 수정하거나 전역 변수를 할당합니다.
예 :
<span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"name=John&age=25&city=NewYork"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">parse_str</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>, </span><span><span class="hljs-variable">$output</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$output</span></span><span>);
</span></span>출력 :
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[name] => John
[age] => </span><span><span class="hljs-number">25</span></span><span>
[city] => NewYork
)
</span></span>MB_PARSE_STR 는 Parse_str 와 유사한 Multibyte String Extension ( MBString )이 제공하는 함수이지만 차이점은 Multibyte 문자 세트 (예 : UTF-8에 인코딩 된 중국어)를 올바르게 처리 할 수 있다는 것입니다. 구문은 parse_str 와 매우 유사합니다.
<span><span><span class="hljs-title function_ invoke__">mb_parse_str</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> &</span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">void</span></span><span>
</span></span>매개 변수 :
$ str : URL 인코딩 된 쿼리 문자열, 일반적으로 멀티 바이트 문자 세트 인코딩 문자열.
$ 배열 (선택 사항) : 구문 분석 결과는이 연관 배열에 저장됩니다.
반품 값 :
parse_str 와 마찬가지로 MB_PARSE_STR 도 값을 반환하지 않으므로 $ array 매개 변수를 참조하여 구문 분석 결과를 반환합니다.
예 :
<span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"name=장 산&age=25&city=베이징"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">mb_parse_str</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>, </span><span><span class="hljs-variable">$output</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$output</span></span><span>);
</span></span>출력 :
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[name] => 장 산
[age] => </span><span><span class="hljs-number">25</span></span><span>
[city] => 베이징
)
</span></span>멀티 바이트 문자 지원 :
parse_str 는 단일 바이트 문자 세트 (예 : ISO-8859-1, GBK) 용으로 설계되었으며 다중 바이트 캐릭터 (예 : 중국어, 일본어, 한국 등)에 대한 문제가 발생합니다.
MB_PARSE_STR 은 멀티 바이트 문자 세트의 문자열을 올바르게 처리하는 멀티 바이트 문자 확장의 일부이므로 MB_PARSE_STR은 쿼리 문자열이 비 ASCII 문자를 포함 할 때 PARSE_STR 보다 더 신뢰할 수 있습니다.
문자 세트 처리 :
parse_str는 멀티 바이트 문자 세트를 처리하지 않으므로 parse_str를 사용할 때 쿼리 문자열에 중국어 또는 기타 비 ASCII 문자가 포함되어 있으면 구문 분석 결과가 차단 될 수 있습니다.
MB_PARSE_STR 는 UTF-8과 같은 다중 바이트 인코딩 문자열에 적합하여 구문 분석 중에 문자가 올바른지 확인합니다.
성능 :
parse_str 는 성능이 우수한 PHP 내장 기능이며 간단한 단일 바이트 문자 세트 쿼리 문자열에 적합합니다.
MB_PARSE_STR 은 MBString 확장의 일부이며 서버에 MBString이 설치되어 있지 않으면 사용할 수 없으며 다중 바이트 문자의 추가 처리가 필요하기 때문에 일반적으로 약간 느립니다.
parse_str 사용 :
처리중인 URL 쿼리 문자열에 ASCII 문자 또는 단일 바이트 문자 만 포함 된 경우 Parse_str는 최상의 선택입니다. 간단하고 효율적이며 단일 바이트 문자 만 포함하는 영어 또는 기타 시나리오에 적합합니다.
MB_PARSE_STR 사용 :
MB_PARSE_STR 프로세스에 URL 쿼리 문자열에 멀티 바이트 문자 (예 : 중국어, 일본어 등)가 포함 된 경우 필요합니다. 이 문자를 올바르게 구문 분석하고 문제를 피할 수 있습니다.
parse_str 는 단일 바이트 문자 세트의 표준 구문 분석 기능으로 특수 또는 다중 바이트 문자가없는 경우에 적합합니다.
MB_PARSE_STR 는 다중 바이트 문자열 확장에서 제공되는 함수이며, 다중 바이트 문자 세트 (예 : 중국어, 일본어 등)가 포함 된 쿼리 문자열을 처리하는 데 특별히 사용됩니다.
실제 상황에 따라 적절한 기능을 선택하면 문자열을 처리 할 때 프로그램의 정확성과 효율성을 보장 할 수 있습니다. 응용 프로그램에 다국어 지원이 포함되거나 ASCII가 아닌 문자를 처리 해야하는 경우 MB_PARSE_STR를 사용하는 것이 좋습니다.