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的ob_start() 控制您的浏览器cache
Aug 03 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
Dec 01 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
php实现比较全的数据库操作类
Jun 18 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
Laravel find in set排序实例
Oct 09 PHP
thinkphp5实现微信扫码支付
Dec 23 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 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中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
session 加入redis的实现代码
2016/07/15 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
遗传算法python版
2018/03/19 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
基于django传递数据到后端的例子
2019/08/16 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
导游的职业规划书范文
2013/12/27 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
文科生自我鉴定
2014/02/15 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
商务邀请函
2015/01/30 职场文书
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫