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+mysql写的留言本
Oct 09 PHP
global.php
Dec 09 PHP
珊瑚虫IP库浅析
Feb 15 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
php+highchats生成动态统计图
May 21 PHP
PHP内存缓存Memcached类实例
Dec 08 PHP
php+ajax实时刷新简单实例
Feb 25 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
PHP页面中文乱码分析
2013/10/29 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
详解Javascript数据类型的转换规则
2016/12/12 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
Python程序设计入门(5)类的使用简介
2014/06/16 Python
python实现删除文件与目录的方法
2014/11/10 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
商务英语求职自荐信范文
2013/12/24 职场文书
秋季运动会加油稿200字
2014/01/11 职场文书
个人收入证明范本
2014/01/12 职场文书
班组安全员工作职责
2014/02/01 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
单位委托书
2014/10/15 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
周年庆典答谢词
2015/01/20 职场文书
幸福来敲门观后感
2015/06/04 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
Mysql案例刨析事务隔离级别
2021/09/25 MySQL
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技