substr() 함수를 사용하여 텍스트를 분할할 수 있지만 분할할 텍스트에 한자가 포함된 경우 문제가 자주 발생합니다. 이 경우 mb_substr()/mb_strcut 함수를 사용할 수 있습니다. mb_substr()/mb_strcut은 문자열 인코딩을 설정하기 위해 mb_substr()/mb_strcut 끝에 매개변수를 하나 더 추가해야 한다는 점을 제외하면 substr()과 유사합니다. 그러나 대부분의 서버는 열리지 않습니다. php_mbstring.dll php.ini에서 php_mbstring.dll을 열어야 합니다.
예:
<?php echo mb_substr(‘这样一来我的字符串就不会有乱码^_^’, 0, 7, ‘utf-8′); ?>
출력: 이 방법 내 단어
<?php echo mb_strcut(‘这样一来我的字符串就不会有乱码^_^’, 0, 7,’utf-8′); ?>
출력: 이 방법
위에서 가능합니다. 예제에서 볼 수 있듯이 mb_substr은 문자를 단어로 분할하고 mb_strcut은 문자를 바이트로 분할하지만 어느 쪽도 문자의 절반을 생성하지 않습니다...
위 단락은 인터넷에서 발췌한 것이며 결과는 모두 my를 통해 얻은 것입니다. 자체 테스트.
개인적 이해:
mb_substr() 함수는 영어나 한자의 단위를 나타냅니다.
mb_strcut() 함수에는 한자 3단위, 영문 1단위가 있습니다.
예:
<?php $str = “这样abcd一来”; echo “mb_substr:”.mb_substr($str, 0, 5, ‘utf-8′); echo “<br>”; echo “mb_strcut:”.mb_strcut($str, 0, 8, ‘utf-8′); ?>
출력 결과는 다음과 같습니다.
mb_substr: 这样abc mb_strcut: 这样ab
첨부 파일:
strlen과 mb_strlen의 차이점 :
<?php $str=”中文a字1符”; echo strlen($str); echo “<br />”; echo mb_strlen($str,’UTF8′); ?>
출력 결과:
14 6
위는 PHP가 중국어 길이를 가로채기 위해 사용하는 mb_substr(), mb_strcut() 함수의 내용입니다. 문자열 관련 내용을 더 보시려면 PHP 중국어 넷(m.sbmmt.com)을 주목해주세요!