支持中文和其他编码的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 form 表单传参明细研究
Jul 17 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
深入PHP magic quotes的详解
Jun 17 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
Jul 08 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
Jul 03 PHP
php封装单文件上传到数据库(路径)
Oct 15 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读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
vue常用指令代码实例总结
2020/03/16 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
10张动图学会python循环与递归问题
2021/02/06 Python
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
外贸业务员求职自荐信分享
2013/09/21 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
建国大业观后感800字
2015/06/01 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
市场营销计划书
2019/04/24 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
Mysql 设置boolean类型的操作
2021/06/04 MySQL