支持中文和其他编码的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常用代码
Nov 23 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
php 流程控制switch的简单实例
Jun 07 PHP
PHP会员找回密码功能的简单实现
Sep 05 PHP
ThinkPHP中session函数详解
Sep 14 PHP
PHP支付宝当面付2.0代码
Dec 21 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
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
linux php mysql数据库备份实现代码
2009/03/10 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
详解Vue中watch的高级用法
2018/05/02 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
基于Django用户认证系统详解
2018/02/21 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Django框架反向解析操作详解
2019/11/28 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
通信研究生自荐信
2014/02/01 职场文书
校园安全广播稿范文
2014/09/25 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
vue实现锚点定位功能
2021/06/29 Vue.js