温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用

php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用

发布时间:2021-09-02 10:26:05 来源:亿速云 阅读:192 作者:小新 栏目:开发技术

这篇文章主要介绍了php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

具体如下:

/* *gb2312中文字符串截取  */ function substr_for_gb2312($str,$start,$len=null)  {   $totlelength = strlen($str);   //特例情况   if ($len == null) $len = $totlelength;   if ($len ==0) return "";   if ($len >= $totlelength && $start == 0 ) return $str;   if ($start > $totlelength) return "";   //分析$start   if ($start < 0 ) //$start<0时,转化为$start>0时的定位.   {   if ( abs($start) >= $totlelength ) $start = 0;   else $start = $totlelength - abs($start);   }   //确定起始位置,当起始位拆分某汉字时,返回值包含此汉字.   if ($start > 0)   {   $i = $start-1;   $flag = -1;   while ($i >= 0)   {   if ( ord(substr($str,$i,1)) > 160)   {   $flag = -1*$flag;   }   else break;   $i--;   }   if($flag==1)   {   $start = $start - 1;   $len++;    //保证不位移.   }  }  $str = substr($str,$start);//截除字符串$str的$start位前的字符  $totlelength = strlen($str);  //确定结束位置,当结束位拆分某汉字时,返回值不包含此汉字.  if ($len<0) $len = $totlelength - abs($len);  if ($len <= 0) return "";  $i=min($len,$totlelength);  $i--;  $flag = -1;  while ($i >= 0)  {   if (ord(substr($str,$i,1))>160)   {    $flag=-1*$flag;   }   else break;   $i--;  }  if($flag == 1)   $len=$len-1;  $subit=substr($str,0,$len);  return $subit;  } /****************************************************************** * PHP截取UTF-8字符串,解决半字符问题。 * 英文、数字(半角)为1字节(8位),中文(全角)为3字节 * @return 取出的字符串, 当$len小于等于0时, 会返回整个字符串 * @param $str 源字符串 * $len 左边的子串的长度 ****************************************************************/ function substr_for_utf($str,$len) { for($i=0;$i<$len;$i++) { $temp_str=substr($str,0,1); if(ord($temp_str) > 127) { $i++; if($i<$len) { $new_str[]=substr($str,0,3); $str=substr($str,3); } } else { $new_str[]=substr($str,0,1); $str=substr($str,1); } } return join($new_str); } ?> /*带start位置的utf8截取函数*/ function utf8_substr($string, $start, $length) {   preg_match_all ('/[/x00-/x7F]|[/xC2-/xDF][/x80-/xBF]|[/xE0-/xEF][/x80-/xBF][/x80-/xBF]|[/xF0-/xF4][/x80-/xBF][/x80-/xBF][/x80-/x BF]/', $string, $rs);   $out = '';   $size = count ($rs[0]);   $end = $start + $length;   if ($end > $size ) {     $end = $size;   }   for ($i = $start; $i < $end; $i++) {     $out .= $rs[0][$i];   }   return $out; }

感谢你能够认真阅读完这篇文章,希望小编分享的“php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8怎么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI