支持中文和其他编码的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中通过正则表达式下载内容中的远程图片的函数代码
Jan 10 PHP
PHP中的按位与和按位或操作示例
Jan 27 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
通过代码实例解析PHP session工作原理
Dec 11 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制作静态网站的模板框架(二)
2006/10/09 PHP
Admin generator, filters and I18n
2011/10/06 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
php use和include区别总结
2019/10/13 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
js的三种继承方式详解
2017/01/21 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
Python中的闭包实例详解
2014/08/29 Python
Python中super关键字用法实例分析
2015/05/28 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
浅析python的优势和不足之处
2018/11/20 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
遇到的Mysql的面试题
2014/06/29 面试题
五一服装活动方案
2014/01/11 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
收银员岗位职责
2015/02/03 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技