加入收藏 | 设为首页 | 会员中心 | 我要投稿 唐山站长网 (https://www.0315zz.com.cn/)- 数据安全、数据开发、文字识别、图像处理、媒体智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-29 11:20:42 所属栏目:PHP教程 来源:互联网
导读:先说明:网上目前有很多这个问题的代码,但是很多都是复制粘贴,没有自己实践,而且代码有逻辑问题,下面的代码由我自己编写。 话不多说: /** * 该函数是对于utf8编码 * @author 2582308253@qq.com * @param string $str * @param int $start * @param int $
  先说明:网上目前有很多这个问题的代码,但是很多都是复制粘贴,没有自己实践,而且代码有逻辑问题,下面的代码由我自己编写。
 
  话不多说:
 
  /**
     * 该函数是对于utf8编码
     * @author 2582308253@qq.com
     * @param string $str
     * @param int $start
     * @param int $length
     * @return string
     * @copyright 2017年2月27日下午1:46:10
     */
    functiongb<a href="/tags.php/substr/" target="_blank">substr</a>2($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;
    } 

(编辑:唐山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读