支持中文和其他编码的php截取字符串函数分享(截取中文字符串)


Posted in PHP onMarch 13, 2014

简单的字符串截取方法,支持中文和其他编码,传入相对应的参数直接调用就可以了

/**
 * 字符串截取,支持中文和其他编码
 * @static
 * @access public
 * @param string $str 需要转换的字符串
 * @param string $start 开始位置
 * @param string $length 截取长度
 * @param string $charset 编码格式
 * @param string $suffix 截断显示字符
 * @return string
 */
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
    if(function_exists("mb_substr"))
        $slice = mb_substr($str, $start, $length, $charset);
    elseif(function_exists('iconv_substr')) {
        $slice = iconv_substr($str,$start,$length,$charset);
        if(false === $slice) {
            $slice = '';
        }
    }else{
        $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));
    }
    return $suffix ? $slice.'...' : $slice;
}
PHP 相关文章推荐
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
yii数据库的查询方法
Dec 28 PHP
laravel学习教程之存取器
Jul 30 PHP
PHP实现文件上传功能实例代码
May 18 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
php实现微信模板消息推送
Mar 30 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
zf框架的数据库追踪器使用示例
Mar 13 #PHP
zf框架的校验器InArray使用示例
Mar 13 #PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 #PHP
zf框架的registry(注册表)使用示例
Mar 13 #PHP
zf框架的Filter过滤器使用示例
Mar 13 #PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 #PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 #PHP
You might like
用PHP编写PDF文档生成器
2006/10/09 PHP
PHP 图像尺寸调整代码
2010/05/26 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
Python中的多行注释文档编写风格汇总
2016/06/16 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
护理自荐信范文
2013/10/05 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
2014年教师节寄语
2014/04/03 职场文书
我爱我家教学反思
2014/05/01 职场文书
企业承诺书格式
2014/05/21 职场文书
推广普通话演讲稿
2014/05/23 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
七年级思品教学反思
2016/02/20 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书