이전 글 "PHP에서 특정 길이의 하위 문자열을 * 기호로 바꾸는 방법"에서 특정 길이의 하위 문자열을 * 기호로 바꾸는 방법인 문자열 대체를 소개했습니다. 문자열을 이해하고 중국어 문자열의 길이를 계산하는 방법이나 중국어와 영어가 혼합된 문자열의 길이를 계산하는 방법을 소개합니다.
중국어 문자열의 길이를 어떻게 계산하나요? 이 문제에 대해 우리의 첫 번째 반응은 strlen() 함수를 사용하는 것일 수도 있는데, strlen() 함수는 전체 영어 문자열을 처리하는 데는 좋지만 중국어와 영어가 혼합된 문자열이나 순수 중국어 문자열의 경우에는 작동하지 않습니다. . 다음 예를 살펴보겠습니다.
<?php header("Content-type:text/html;charset=utf-8"); //设置字符编码为utf-8 $str = "欢迎来到PHP中文网!"; echo '字符串 “'.$str.'” 的长度为:'.strlen($str).'<br>'; ?>
출력 결과는 다음과 같습니다.
strlen() 함수는 다른 규칙으로 인해 중국어와 영어가 혼합된 문자열 또는 순수 중국어 문자열의 길이를 정확하게 반환하지 못하는 것을 알 수 있습니다. 문자 처리를 위해. 그렇다면 왜 27을 반환합니까?
우리가 사용하는 문자 인코딩이 utf-8이기 때문입니다. UTF-8 인코딩에서는 한자가 3바이트를 차지합니다.
strlen() 함수 ASCII 코드에서 한자는 2바이트의 공간을 차지합니다. UTF-8 인코딩에서는 한자(번체 중국어 포함)가 유니코드 인코딩에서 3바이트와 같습니다. 중국어 번체)는 2바이트와 같습니다.
위의 예에서 "Welcome to PHP Chinese website!
" 문자열 중 하나에 중국어 문자 8개와 영어 문자 3개가 포함되어 있으며, 그 다음에는 8*3+3= 27
bytes인 경우 문자열 길이는 27입니다. 欢迎来到PHP中文网!
”中一个包含了8个中文字符,3个英文字符,则8*3+3=27
个字节,则字符串长度为27。
但这样的字符串长度不是我们想要的,那样如何处理中文字符,可以准确的计算出我们想要的中英文混合或纯中文字符串的长度呢?
PHP提供了一个函数来解决这个问题,那就是mb_strlen() 函数。
还是上个示例,这次使用mb_strlen() 函数来计算字符串长度:
<?php header("Content-type:text/html;charset=utf-8"); $str = "欢迎来到PHP中文网!"; echo '字符串 “'.$str.'” 的长度为:'.mb_strlen($str,'utf-8').'<br>'; ?>
输出结果为:
可以看出:字符串$str
中,中文+英文+感叹号,一个有11个字符,输出结果也为11。对了,找到对的人了~
mb_strlen() 函数中无论是汉字,还是英文、数字、小数点、下划线和空格,都只占一个字节。
下面我们来简单了解一下mb_strlen() 函数。
mb_strlen($string,$encoding)
函数可以通过设置字符编码从而返回对应的字符数;该函数接受一个必需参数$string(需要检测的字符串)和一个可省略的参数$encoding
(字符编码),如果省略则使用内部字符编码。
我们可以通过设置对应的$encoding
PHP에서는 이 문제를 해결하기 위한 기능인 mb_strlen() 함수를 제공합니다.
이전 예와 동일합니다. 이번에는 mb_strlen() 함수를 사용하여 문자열 길이를 계산합니다.rrreee출력 결과는 다음과 같습니다.
$str
, 중국어 + 영어 + 느낌표, 하나는 11자이고 출력 결과도 11입니다. 그런데 딱 맞는 사람을 찾았어요~mb_strlen($string,$encoding)
함수는 문자 인코딩을 설정하여 해당 문자 수를 반환할 수 있습니다. 이 함수는 필수 매개 변수 $string(감지해야 하는 문자열)과 생략됨 매개변수 $encoding
(문자 인코딩), 생략되면 내부 문자 인코딩이 사용됩니다. 🎜🎜해당 $encoding
매개변수를 설정하면 중국어 문자열의 길이 문제를 잘 처리할 수 있습니다. 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 비디오 튜토리얼🎜🎜🎜마지막으로 클래식 강좌인 "🎜PHP 문자열 처리(옥소녀심경편)🎜"을 읽어보시길 추천합니다. 무료입니다~ 와서 배워보세요! 🎜위 내용은 한자 또는 혼합 문자의 길이를 반환하는 방법을 학습하는 PHP 문자열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!