支持中文和其他编码的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和ACCESS写聊天室(六)
Oct 09 PHP
针对初学PHP者的疑难问答(1)
Oct 09 PHP
php的一个登录的类 [推荐]
Mar 16 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
如何让thinkphp在模型中自动完成session赋值小教程
Sep 05 PHP
symfony表单与页面实现技巧
Jan 26 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
PHP让网站移动访问更加友好方法
Feb 14 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实现简单的随机抽奖小程序
2016/01/05 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
设定php简写功能的方法
2019/11/28 PHP
asp 取文本框名称代码
2008/12/02 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
Python常用正则表达式符号浅析
2014/08/13 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
《圆明园的毁灭》教学反思
2014/02/28 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
欢迎新生标语2015
2015/07/16 职场文书
详解MySQL的半同步
2021/04/22 MySQL
MySQL 如何设计统计数据表
2021/06/15 MySQL