php中支持多种编码的中文字符串截取函数!

  作者:bea

支持多种编码的中文字符串截取函数! 代码如下: /* *@todo中文截取,支持gb2312,gbk,utf-8,big5 * *@paramstring$str要截取的字串 *@paramint$start截取起始位置 *@paramint$length截取长度 *@paramstring$charsetutf-8|gb2312|gbk|big5编码 *@param$suffix是否加尾缀 */ functioncsubstr($str,$start
支持多种编码的中文字符串截取函数!  


代码如下:


/*  
  * @todo 中文截取,支持gb2312,gbk,utf-8,big5   
  *  
  * @param string $str 要截取的字串  
  * @param int $start 截取起始位置  
  * @param int $length 截取长度  
  * @param string $charset utf-8|gb2312|gbk|big5 编码   
  * @param $suffix 是否加尾缀  
  */   

function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)  
{  
 if(function_exists("mb_substr"))  
  return mb_substr($str, $start, $length, $charset);  
 $re['utf-8']   = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";   
 $re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";  
 $re['gbk']   = "/[x01-x7f]|[x81-xfe][x40-xfe]/";  
 $re['big5']   = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";   
 preg_match_all($re[$charset], $str, $match);  
 $slice = join("",array_slice($match[0], $start, $length));  
 if($suffix) return $slice."…";  
 return $slice;  





有用  |  无用

猜你喜欢