PHP에서 문자열 길이를 계산하는 일반적인 함수는 strlen과 mb_strlen입니다. 문자가 모두 영어 문자인 경우 둘은 동일합니다. 여기서는 주로 중국어와 영어가 혼합된 경우의 두 가지 계산 결과를 비교합니다.
PHP에서 strlen, mb_strlen은 문자열의 길이를 구하는 함수인데, 일부 초보자의 경우 매뉴얼을 읽지 않으면 차이점을 잘 모를 수도 있습니다.
다음은 둘 사이의 차이점을 보여주는 예입니다.
예제를 먼저 살펴보겠습니다:
<?php //测试时文件的编码方式为gbk $str='中文a字1符'; echo strlen($str).'<br>';//10 echo mb_strlen($str,'utf8').'<br>';//7 echo mb_strlen($str,'gbk').'<br>';//6 echo mb_strlen($str,'gb2312').'<br>';//6 echo mb_strlen($str).'<br>';//10 ?>
결과 분석:
strlen을 계산할 때 gbk로 처리하는 한자는 2길이이므로 " "한자 1자"의 길이는 2*4+2=10입니다. mb_strlen 계산시 내부코드가 gbk일 경우 한자는 한자 길이로 처리됩니다.
이 두 함수를 이용하면 한자와 영문이 혼합된 문자열의 점유율을 공동으로 계산할 수 있습니다(한자의 점유율은 2, 영문자의 점유율은 1)
echo (strlen($str) + mb_strlen($str,'UTF8')) / 2;
예를 들어 "한자 1자"의 strlen($str) 값이 10이고, mb_strlen($str) 값이 6이면 "한자 한자"의 자리 표시자는 다음과 같이 계산할 수 있습니다. 1 문자"는 10입니다.#🎜 🎜#
echo mb_internal_encoding();
위 내용은 PHP에서 strlen과 mb_strlen의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!