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

 更新时间:2007年03月20日 00:00:00   转载 作者:  
支持多种编码的中文字符串截取函数!  
复制代码 代码如下:

/*  
  * @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实现的迪科斯彻(Dijkstra)最短路径算法实例

    PHP实现的迪科斯彻(Dijkstra)最短路径算法实例

    这篇文章主要介绍了PHP实现的迪科斯彻(Dijkstra)最短路径算法,简单描述了迪科斯彻(Dijkstra)最短路径算法的概念、功能并结合具体实例形式分析了php实现迪科斯彻(Dijkstra)最短路径算法的相关步骤与操作技巧,需要的朋友可以参考下
    2017-09-09
  • PHP的explode和implode的使用说明

    PHP的explode和implode的使用说明

    下里说道php中的explode 和implode的用法,芭蕾舞鞋,盼望对于友朋们有所辅助!
    2011-07-07
  • PHP实现的简单AES加密解密算法实例

    PHP实现的简单AES加密解密算法实例

    这篇文章主要介绍了PHP实现的简单AES加密解密算法,结合具体实例形式分析了php基于mcrypt_encrypt、bin2hex、mcrypt_decrypt等方法进行字符串加密解密的相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • PHP实现限制IP访问的方法

    PHP实现限制IP访问的方法

    这篇文章主要介绍了PHP实现限制IP访问的方法,涉及php针对客户端IP的获取、解析、遍历、判断等相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • PHP反射学习入门示例

    PHP反射学习入门示例

    这篇文章主要介绍了PHP反射,简单描述了php反射的概念、原理,并结合实例形式分析了php反射的基本实现与使用技巧,需要的朋友可以参考下
    2019-06-06
  • PHP 5.0 Pear安装方法

    PHP 5.0 Pear安装方法

    PHP 5.0 Pear安装方法...
    2006-12-12
  • php 删除记录同时删除图片文件的实现代码

    php 删除记录同时删除图片文件的实现代码

    php 删除记录同时删除图片文件的实现代码,需要的朋友可以参考下。
    2010-05-05
  • php采用curl实现伪造IP来源的方法

    php采用curl实现伪造IP来源的方法

    这篇文章主要介绍了php采用curl实现伪造IP来源的方法,主要涉及使用curl的CURLOPT_REFERER参数实现该功能,需要的朋友可以参考下
    2014-11-11
  • 让PHP开发者事半功倍的十大技巧小结

    让PHP开发者事半功倍的十大技巧小结

    在PHP中,单纯按照自己思路去解决问题往往会是一种错误的办法。这并不是因为你是一个糟糕的程序员,而是因为如果你想写出好的可维护性强的代码,有些标准技巧是你必须要使用的。
    2010-04-04
  • 探讨:使用XMLSerialize 序列化与反序列化

    探讨:使用XMLSerialize 序列化与反序列化

    本篇文章是对使用XMLSerialize 序列化与反序列化进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论