支持中文和其他编码的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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
smarty简单入门实例
Nov 28 PHP
19个Android常用工具类汇总
Dec 30 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP中PDO事务处理操作示例
May 02 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
php部分常见问题总结
2008/03/27 PHP
php反射应用示例
2014/02/25 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
2018/05/26 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
Python里隐藏的“禅”
2014/06/16 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
django-filter和普通查询的例子
2019/08/12 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
Unix控制后台进程都有哪些进程
2016/09/22 面试题
责任胜于能力演讲稿
2014/05/20 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
公司禁烟通知
2015/04/23 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电