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('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?>
출력: 그래서 내 말은
<?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?>
출력: 이렇게
위에서 가능합니다. 예제에서 볼 수 있듯이 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 = '我是一串比较长的中文-www.webjx.com'; echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8'); echo "<br>"; echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); ?>
출력 결과는 다음과 같습니다.
mb_substr: I am a 비교 문자열
mb_strcut:I am