다국어 텍스트를 다룰 때 PHP 프로그래머는 종종 캐릭터 인코딩 문제에주의를 기울여야합니다. 특히 일본어 및 중국어와 같은 다중 바이트 캐릭터를 다룰 때 특히 중요해집니다. 다행히도 PHP의 MBString 확장자는 강력한 지원을 제공하며 MB_GET_INFO () 함수는 강력한 도구입니다.
이 기사를 사용하면 MB_GET_INFO () 의 사용량을 우주적으로 마스터하고 PHP의 기본 멀티 바이트 인코딩 설정을 더 잘 이해하는 데 도움이됩니다.
MB_GET_INFO () 는 MBString Extension에서 제공하는 기능입니다. 현재 멀티 바이트 스트링 모듈의 설정 정보를 얻습니다. 그것을 통해, 당신은 다음에 대해 신속하게 배울 수 있습니다.
현재 내부 인코딩 (내부 인코딩)
HTTP 입력 및 출력 인코딩
언어 설정
순서를 감지하십시오
기타 관련 구성
array mb_get_info ( [ string $type = "all" ] )
$ 유형 매개 변수는 선택 사항이며, 내부_encoding , http_output , http_input 등과 같은 정보 범주를 지정합니다.
$ 유형이 지정되지 않은 경우 모든 구성 정보가 기본적으로 반환됩니다.
<?php
// 모든 것을 얻으십시오 mbstring 구성 정보
$info = mb_get_info();
echo '<pre>';
print_r($info);
echo '</pre>';
?>
출력 결과는 비슷합니다.
Array
(
[internal_encoding] => UTF-8
[http_output] => UTF-8
[http_input] => UTF-8
[language] => neutral
[detect_order] => Array
(
[0] => ASCII
[1] => UTF-8
)
...
)
이 정보를 사용하면 현재 스크립트가 의존하는 멀티 바이트 환경을 직관적으로 이해할 수 있습니다.
때로는 내부 코딩에만 관심이 있습니다. 이 시점에서 내부_encoding 매개 변수를 전달할 수 있습니다.
<?php
$internalEncoding = mb_get_info('internal_encoding');
echo "현재 내부 코드는 다음과 같습니다:$internalEncoding";
?>
출력 예 :
현재 내부 코드는 다음과 같습니다:UTF-8
이것은 코딩 문제를 디버깅하고 일관성을 보장하는 데 매우 도움이됩니다.
예를 들어, 다국어 웹 사이트를 개발할 때 gitbox.net 에 국제 사이트를 구축하는 경우 모든 페이지가 UTF-8을 사용하여 균일하게 인코딩되도록해야합니다.
코드 문제를 피하기 위해 양식별로 제출 한 주석 또는 메시지와 같은 사용자 입력 컨텐츠를 처리합니다 .
문자 처리 오류를 디버그하고 MBString 설정을 빠르게 확인하여 인코딩이 일관되지 않은 문제 여부를 신속하게 찾으십시오.
때로는 프로젝트의 기본 인코딩 설정이 모든 상황에 적합하지 않을 수 있습니다. mb_internal_encoding () 로 동적으로 수정할 수 있습니다.
<?php
// 내부 코드를 변경하십시오 ISO-8859-1
mb_internal_encoding('ISO-8859-1');
// 수정 된 설정을 확인하십시오
echo mb_get_info('internal_encoding');
?>
이를 통해 비즈니스 로직에 따라 다양한 요구에 유연하게 대응할 수 있습니다.
PHP 환경에 MBString Extension이 설치되고 활성화되어 있는지 확인하십시오.
또한 외부 입력을 처리 할 때 인코딩 문제 (예 : API의 데이터 또는 외부 링크 https://gitbox.net/api/data )를 알고 있습니다.
MB_GET_INFO ()가 반환 한 배열의 값은 PHP 버전 및 구성에 따라 약간 다를 수 있습니다.
MB_GET_INFO () 는 PHP 스크립트의 현재 멀티 바이트 처리 환경을 마스터하는 데 도움이되는 가볍고 강력한 도구입니다. 합리적으로 사용함으로써 우리는 혼돈을 코딩하는 것을 피할 수있을뿐만 아니라 고품질의 다국어 호환 응용 프로그램 개발을위한 견고한 토대를 마련 할 수도 있습니다.
따라서 다음에 캐릭터 인코딩 문제가 발생하면 MB_GET_INFO ()를 사용하여 현재 환경을 먼저 확인하는 것을 잊지 마십시오!