首页 > 语言 > PHP > 正文

支持中文和其他编码的php截取字符串函数分享(截取中文字符串)

2024-09-04 11:43:26
字体:
来源:转载
供稿:网友

这篇文章主要介绍了支持中文和其他编码的php截取字符串函数示例(截取中文字符串),需要的朋友可以参考下。

简单的字符串截取方法,支持中文和其他编码,传入相对应的参数直接调用就可以了,代码如下:

  1. /** 
  2.  * 字符串截取,支持中文和其他编码 
  3.  * @static 
  4.  * @access public 
  5.  * @param string $str 需要转换的字符串 
  6.  * @param string $start 开始位置 
  7.  * @param string $length 截取长度 
  8.  * @param string $charset 编码格式 
  9.  * @param string $suffix 截断显示字符 
  10.  * @return string 
  11.  */ 
  12. function msubstr($str$start=0, $length$charset="utf-8"$suffix=true) { 
  13.     if(function_exists("mb_substr")) 
  14.         $slice = mb_substr($str$start$length$charset); 
  15.     elseif(function_exists('iconv_substr')) { 
  16.         $slice = iconv_substr($str,$start,$length,$charset); 
  17.         if(false === $slice) { 
  18.             $slice = ''
  19.         } 
  20.     }else
  21.         $re['utf-8']   = "/[/x01-/x7f]|[/xc2-/xdf][/x80-/xbf]|[/xe0-/xef][/x80-/xbf]{2}|[/xf0-/xff][/x80-/xbf]{3}/"
  22.         $re['gb2312'] = "/[/x01-/x7f]|[/xb0-/xf7][/xa0-/xfe]/"
  23.         $re['gbk']    = "/[/x01-/x7f]|[/x81-/xfe][/x40-/xfe]/"
  24.         $re['big5']   = "/[/x01-/x7f]|[/x81-/xfe]([/x40-/x7e]|/xa1-/xfe])/"
  25.         preg_match_all($re[$charset], $str$match); 
  26.         $slice = join("",array_slice($match[0], $start$length)); 
  27.     } 
  28.     return $suffix ? $slice.'...' : $slice

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