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

yipeiwu_com6年前PHP代码库
支持多种编码的中文字符串截取函数!  
复制代码 代码如下:

/*  
  * @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;  

相关文章

php中autoload的用法总结

PHP中提供了Autoload来帮助我们方便的进行文件的包含,但是autoload并非想象的那样能够处理所有的情况,今天就来记录一下前几天遇到的autoload存在的一些问题。 为什么要...

PHP7扩展开发之hello word实现方法详解

本文实例讲述了PHP7扩展开发之hello word实现方法。分享给大家供大家参考,具体如下: 这里是以PHP7作为基础,讲解如何从零开始创建一个PHP扩展。本文主要讲解创建一个扩展的基...

php实现的统计字数函数定义与使用示例

本文实例讲述了php实现的统计字数函数定义与使用方法。分享给大家供大家参考,具体如下: <?php //函数定义: function countWords($str){...

php生成图片验证码的实例讲解

php生成图片验证码的实例讲解

本文以实例演示5种验证码,并介绍生成验证码的函数。PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中。 1、HTML 5中验证码HTML代码如...

php一个文件搞定微信jssdk配置

php一个文件搞定微信jssdk配置: 包括缓存,包括https通讯,获取微信access_token,签名什么的都有。但是防范性编程做得比较少,商业用的话,需要完善下代码。 使用姿势...