支持中文和其他编码的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 相关文章推荐
CodeIgniter php mvc框架 中国网站
May 26 PHP
php 缓存函数代码
Aug 27 PHP
PHP array_flip() 删除重复数组元素专用函数
May 16 PHP
PHP中读写文件实现代码
Oct 20 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
Feb 04 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
Jun 22 PHP
laravel安装和配置教程
Oct 29 PHP
php生成图片缩略图的方法
Apr 07 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 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连接和操作MySQL数据库基础教程
2014/09/29 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
ext 代码生成器
2009/08/07 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
Python中无限循环需要什么条件
2020/05/27 Python
Python计算信息熵实例
2020/06/18 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
机械系毕业生求职信
2014/05/28 职场文书
人事专员岗位说明书
2014/07/29 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers