支持中文和其他编码的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页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
php获取twitter最新消息的方法
Apr 14 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 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 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
php下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
js里面的变量范围分享
2020/07/18 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
Python解析xml中dom元素的方法
2015/03/12 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
建筑安全生产目标责任书
2014/07/23 职场文书
励志演讲稿800字
2014/08/21 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书