중국어 문자열-utf8 버전의 PHP 사용자 정의 가로채기

高洛峰
풀어 주다: 2023-03-06 09:32:02
원래의
1296명이 탐색했습니다.

먼저 주의할 점은 현재 인터넷에 이 문제에 대한 코드가 많이 있지만, 그 중 상당수가 본인의 연습 없이 복사하여 붙여넣은 것이며, 다음 코드는 논리적인 문제를 가지고 작성되었습니다. 내 자신.

할말 없음

/**
   * 该函数是对于utf8编码
   * @author 2582308253@qq.com
   * @param string $str
   * @param int $start
   * @param int $length
   * @return string
   * @copyright 2017年2月27日下午1:46:10
   */
  function gbsubstr2($str, $start, $length) {
    $length = abs($length);
    $strLen = strlen($str);
    $len = $start + $length;
    $newStr = '';
    for($i = $start; $i < $len && $i < $strLen; $i++) {
      if(ord(substr($str, $i, 1)) > 0xa0) {
        //utf8编码中一个汉字是占据3个字节的,对于其他的编码的字符串,中文占据的字节各有不同,自己需要去修改这个数a
        $newStr .= substr($str, $i, 3);//此处a=3;
        $i+=2;
        $len += 2; //截取了三个字节之后,截取字符串的终止偏移量也要随着每次汉字的截取增加a-1;
      } else {
        $newStr .= substr($str, $i, 1);
      }
    }
    return $newStr;
  }
로그인 후 복사

중국어 문자열의 PHP 사용자 정의 가로채기-utf8 버전 관련 기사를 더 보려면 PHP 중국어 웹사이트를 주목하세요!

관련글 :

문자열의 특정 위치에 문자열을 삽입하는 작은 함수

PHP 개발팁(10) - 중국어 문자 깨짐 없이 문자열 가로채기 구현 방법

php에서 eval을 통해 문자열 형식 계산식에 대한 자세한 코드 설명

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