substr(), mb_substr(), mb_strcut(한자 가로채기)의 차이점과 사용법

巴扎黑
풀어 주다: 2016-11-23 14:11:13
원래의
1220명이 탐색했습니다.

PHP substr() 함수는 텍스트를 분할할 수 있지만 분할할 텍스트에 한자가 포함된 경우 종종 문제가 발생합니다. 이 경우 mb_substr()/mb_strcut 함수를 사용할 수 있습니다. /mb_strcut은 substr()과 동일합니다. 단, 문자열 인코딩을 설정하려면 mb_substr()/mb_strcut 끝에 매개변수를 하나 더 추가해야 한다는 점만 다릅니다. 그러나 대부분의 서버는 php_mbstring.dll을 열지 않습니다. php.ini에서 php_mbstring.dll을 엽니다.

예:

<?php 
echo mb_substr(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;); 
?>
로그인 후 복사

출력: 그래서 내 말은

<?php 
echo mb_strcut(&#39;这样一来我的字符串就不会有乱码^_^&#39;, 0, 7, &#39;utf-8&#39;); 
?>
로그인 후 복사

출력: 이렇게
위에서 가능합니다. 예제에서 볼 수 있듯이 mb_substr은 문자를 단어로 분할하고 mb_strcut은 문자를 바이트로 분할하지만 둘 다 문자의 절반을 생성하지 않습니다...

mbstring 함수 설명:

php의 mbstring 확장 모듈은 다음을 제공합니다. 멀티바이트 문자 처리 기능 가장 일반적으로 사용되는 방법은 mbstring을 사용하여 멀티바이트 중국어 문자를 분할하는 것입니다. 이는 PHP 확장이므로 일부 사용자 정의 멀티바이트보다 성능도 더 좋습니다. 분할 기능.

mbstring 확장은 mb_substr 및 mb_strcut과 같은 유사한 기능을 제공합니다. 해당 설명은 설명서를 참조하세요.

mb_substr
mb_substr()은 시작 및 길이 매개변수로 지정된 str 부분을 반환합니다.

mb_substr()은 문자 수를 기준으로 멀티바이트 안전 substr() 작업을 수행합니다. 위치는 str의 시작부터 계산됩니다. 첫 번째 문자 위치는 0입니다. 두 번째 문자 위치는 1입니다.

mb_strcut
mb_strcut()은 start 및 length 매개변수로 지정된 str 부분을 반환합니다. .

mb_strcut()은 다른 방법으로 mb_substr()과 동일한 작업을 수행합니다. 시작 위치가 멀티바이트 문자의 두 번째 바이트 이상인 경우

길이보다 짧은 문자열과 멀티 바이트 문자열의 일부가 아니거나 시프트 시퀀스의 중간이 아닌 문자를 뺍니다.

또 다른 예를 들어, mb_substr 및 mb_strcut을 각각 분할하려면:

PLAIN TEXT
CODE:

<?php 
$str = &#39;我是一串比较长的中文-www.webjx.com&#39;; 
echo "mb_substr:" . mb_substr($str, 0, 6, &#39;utf-8&#39;); 
echo "<br>"; 
echo "mb_strcut:" . mb_strcut($str, 0, 6, &#39;utf-8&#39;); 
?>
로그인 후 복사

출력 결과는 다음과 같습니다.

mb_substr: I am a 비교 문자열
mb_strcut:I am

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿