>  기사  >  백엔드 개발  >  PHP는 중국어 문자열 길이의 mb_substr() 및 mb_strcut() 함수를 가로챕니다.

PHP는 중국어 문자열 길이의 mb_substr() 및 mb_strcut() 함수를 가로챕니다.

黄舟
黄舟원래의
2017-02-06 15:12:351288검색

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 중국어 넷(www.php.cn)을 주목해주세요!


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