当前位置:首页 > PHP教程 > php函数 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2018-08-03 16:55:57 浏览: 评论:0 

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

话不多说:

  1. /** 
  2.    * 该函数是对于utf8编码 
  3.    * @author 2582308253@qq.com 
  4.    * @param string $str 
  5.    * @param int $start 
  6.    * @param int $length 
  7.    * @return string 
  8.    * @copyright 2017年2月27日下午1:46:10 
  9.    */ 
  10.   functiongb<a href="/tags.php/substr/" target="_blank">substr</a>2($str,$start,$length) { 
  11.     $length=abs($length); 
  12.     $strLen=strlen($str); 
  13.     $len=$start+$length
  14.     $newStr='' 
  15.     for($i=$start;$i<$len&&$i<$strLen;$i++) { 
  16.       if(ord(substr($str,$i, 1)) > 0xa0) { 
  17.         //utf8编码中一个汉字是占据3个字节的,对于其他的编码的字符串,中文占据的字节各有不同,自己需要去修改这个数a 
  18.         $newStr.=substr($str,$i, 3);//此处a=3; 
  19.         $i+=2; 
  20.         $len+= 2;//截取了三个字节之后,截取字符串的终止偏移量也要随着每次汉字的截取增加a-1; 
  21.       }else
  22.         $newStr.=substr($str,$i, 1); 
  23.       } 
  24.     } 
  25.     return$newStr
  26.   } 

Tags: 字符串 中文

分享到: