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 setcookie() cannot modify header information 的解决方法

使用setcookie()函数时总是报以下错误: Warning: Cannot modify header information - headers already sent by....

PHP MemCached高级缓存配置图文教程

PHP MemCached高级缓存配置图文教程

1.Memcache相关介绍 memcache是一个高性能的分布式的内存对象缓存系统,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。 使用Memcache的网...

php下载文件源代码(强制任意文件格式下载)

一个简单的php文件下载源代码,虽不支持断点续传等,但是可以满足一些常用的需求了。php下载文件其实用一个a标签就能实现,比如 <a href="web/magento-1.8.1...

原生JS实现Ajax通过POST方式与PHP进行交互的方法示例

原生JS实现Ajax通过POST方式与PHP进行交互的方法示例

本文实例讲述了原生JS实现Ajax通过POST方式与PHP进行交互的方法。分享给大家供大家参考,具体如下: 一、代码 conn.php <?php $conn=m...

PHP操作数组的一些函数整理介绍

在数组中搜索一个特定值,如果找到返回TRUE否则返回FALSE boolean in_array(mixed needle,array haystack[,boolean strict]...