支持中文和其他编码的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 相关文章推荐
Discuz 模板引擎的封装类代码
Jul 18 PHP
php将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
php 缩略图实现函数代码
Jun 23 PHP
header导出Excel应用示例
Jan 24 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
分享一个php 的异常处理程序
Jun 22 PHP
PHP多进程编程实例
Oct 15 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
CI框架实现cookie登陆的方法详解
May 18 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP的new static和new self的区别与使用
Nov 27 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执行sql语句的写法
2009/03/10 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
jquery foreach使用示例
2013/09/12 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
Python实现选择排序
2017/06/04 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
四川成都导游欢迎词
2014/01/18 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
学校运动会感想
2015/08/10 职场文书