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


Posted in PHP onMarch 20, 2007

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

/*   
  * @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 相关文章推荐
php读取xml实例代码
Jan 28 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
PHP数组和explode函数示例总结
May 08 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
理解PHP5中static和const关键字的区别
Mar 19 #PHP
php中目录,文件操作详谈
Mar 19 #PHP
PHP配置文件中最常用四个ini函数
Mar 19 #PHP
推荐一篇入门级的Class文章
Mar 19 #PHP
隐藏你的.php文件的实现方法
Mar 19 #PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 #PHP
php分页示例代码
Mar 19 #PHP
You might like
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
简单学习vue指令directive
2016/11/03 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python中模块的__all__属性详解
2017/10/26 Python
Python多继承顺序实例分析
2018/05/26 Python
pytorch标签转onehot形式实例
2020/01/02 Python
python支持多继承吗
2020/06/19 Python
python字典key不能是可以是啥类型
2020/08/04 Python
Python识别验证码的实现示例
2020/09/30 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
QA工程师岗位职责
2013/11/20 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
财务担保书范文
2014/04/02 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
运动会致辞稿
2015/07/29 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS