支持中文和其他编码的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 相关文章推荐
我常用的几个类
Oct 09 PHP
10个可以简化php开发过程的MySQL工具
Apr 11 PHP
ThinkPHP模板引擎之导入资源文件方法详解
Jun 18 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
PHP版本常用的排序算法汇总
Dec 20 PHP
24条货真价实的PHP代码优化技巧
Jul 28 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
Jun 21 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
Mar 21 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
laravel通用化的CURD的实现
Dec 13 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扩展
2013/06/13 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
ExtJS 入门
2010/10/29 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
浅谈node的事件机制
2017/10/09 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
奥利奥广告词
2014/03/20 职场文书
留学经费担保书
2014/05/12 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
员工年终考核评语
2014/12/31 职场文书
法律意见书范本
2015/06/04 职场文书
陪护人员误工证明
2015/06/24 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers