支持中文和其他编码的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 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
PHP三层结构(上) 简单三层结构
Jul 04 PHP
PHP+JS+rsa数据加密传输实现代码
Mar 23 PHP
php数组随机排序实现方法
Jun 13 PHP
php目录拷贝实现方法
Jul 10 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
Laravel关系模型指定条件查询方法
Oct 10 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
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
微信小程序实现watch监听
2020/06/04 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
python重试装饰器示例
2014/02/11 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
Python加速程序运行的方法
2020/07/29 Python
python tqdm库的使用
2020/11/30 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
采购部部门职责
2013/12/15 职场文书
中层干部岗位职责
2013/12/18 职场文书
项目经理聘任书
2014/03/29 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
个人创业事迹材料
2014/12/30 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript