>백엔드 개발 >PHP 튜토리얼 >PHP 내장 함수 strlen과 mbstring의 확장 함수 mb_strlen 간의 차이점 분석

PHP 내장 함수 strlen과 mbstring의 확장 함수 mb_strlen 간의 차이점 분석

不言
不言원래의
2018-07-16 09:21:021957검색

이 글에서는 주로 PHP 내장 함수 strlen과 mbstring 확장 함수 mb_strlen의 차이점을 소개합니다. 이제 특정 참조 값이 있어 필요한 친구들이 참조할 수 있습니다

#EXAMPLE

$str_uncode = "简体中文Chinese(Simplified)";
//统计字符串长度
echo strlen($str_uncode).&#39;<br>&#39;;//结果:31
echo mb_strlen($str_uncode, &#39;UTF-8&#39;).&#39;<br>&#39;;结果:23
echo mb_strlen($str_uncode, &#39;GBK&#39;).&#39;<br>&#39;;结果:25
echo mb_strlen($str_uncode, &#39;GB2312&#39;).&#39;<br>&#39;;结果27

결과 분석:

strlen은 한자를 3바이트로 계산합니다. (복잡한 한자는 4바이트로 계산합니다.)

mb_strlen 'UTF-8'은 한자를 1바이트로 인코딩합니다.

PHP에 내장된 문자열 길이 함수 strlen 중국어 문자열을 올바르게 처리하지 못합니다. 얻는 것은 문자열이 차지하는 바이트 수뿐입니다. GB2312 중국어 인코딩의 경우 strlen으로 얻은 값은 중국어 문자 수의 2배인 반면, UTF-8 인코딩 중국어의 경우 차이는 3배입니다(UTF-8 인코딩에서는 한자 하나가 3바이트를 차지합니다).

mb_strlen 함수를 사용하면 이 문제를 더 잘 해결할 수 있습니다. mb_strlen의 사용법은 문자 인코딩을 지정하는 두 번째 선택적 매개변수가 있다는 점을 제외하면 strlen과 유사합니다. 예를 들어, UTF-8 문자열 $str 길이를 얻으려면 mb_strlen($str,'UTF-8')을 사용할 수 있습니다.

두 번째 매개변수를 생략하면 PHP 내부 인코딩이 사용됩니다. 내부 인코딩은 mb_internal_encoding() 함수를 통해 얻을 수 있습니다.

mb_strlen은 PHP 핵심 함수가 아닙니다. 사용하기 전에 php_mbstring.dll이 php.ini에 로드되었는지 확인해야 합니다. 즉, "extension=php_mbstring.dll" 줄이 존재하고 주석 처리되지 않았는지 확인하세요. 그렇지 않으면 정의되지 않은 함수 문제가 발생합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되길 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

php를 사용하여 URL 데드 링크를 검사하는 방법

PHP에서 var_export를 사용하는 방법

위 내용은 PHP 내장 함수 strlen과 mbstring의 확장 함수 mb_strlen 간의 차이점 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.