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 Ajax乱码
Apr 09 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
PHP符合PSR编程规范的实例分享
Dec 21 PHP
深入解析PHP中SESSION反序列化机制
Mar 01 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 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
如何去掉文章里的 html 语法
2006/10/09 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
Python中对列表排序实例
2015/01/04 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
python 上下文管理器使用方法小结
2017/10/10 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
python中二分查找法的实现方法
2020/12/06 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
C# .NET面试题
2015/11/28 面试题
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
运输服务质量承诺书
2014/03/27 职场文书
节水倡议书
2015/01/19 职场文书
质量整改通知单
2015/04/21 职场文书
2015年手术室工作总结
2015/05/11 职场文书
运动会800米赞词
2015/07/22 职场文书
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技