支持中文和其他编码的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 相关文章推荐
让你同时上传 1000 个文件 (一)
Oct 09 PHP
php实现的MySQL通用查询程序
Mar 11 PHP
PHP静态新闻列表自动生成代码
Jun 14 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
PHP简单选择排序算法实例
Jan 26 PHP
Yii2框架类自动加载机制实例分析
May 02 PHP
PHP时间相关常用函数用法示例
Jun 03 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
js查错流程归纳
2012/05/04 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
Angular工具方法学习
2016/12/26 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
python 初始化一个定长的数组实例
2019/12/02 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
努比亚手机官网:nubia
2016/10/06 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
财务分析个人的自荐书范文
2013/11/24 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
电子商务专业求职信
2014/07/10 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP