首页 > 开发 > PHP > 正文

php自定义截取中文字符串-utf8版

2024-05-04 22:48:56
字体:
来源:转载
供稿:网友

先说明:网上目前有很多这个问题的代码,但是很多都是复制粘贴,没有自己实践,而且代码有逻辑问题,下面的代码由我自己编写。

话不多说

/**   * 该函数是对于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;  }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持错新站长站!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表