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数据库操作面向对象的优点
Oct 09 PHP
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 PHP
php 动态多文件上传
Jan 18 PHP
10个可以简化php开发过程的MySQL工具
Apr 11 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 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
其他功能
2006/10/09 PHP
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
python+pandas分析nginx日志的实例
2018/04/28 Python
python实现ID3决策树算法
2018/08/29 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
最新的大学生找工作自我评价
2013/09/29 职场文书
有关打架的检讨书
2014/01/25 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技