博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串截取,对数字,英文,汉字都可以
阅读量:6871 次
发布时间:2019-06-26

本文共 835 字,大约阅读时间需要 2 分钟。

同长我们在建站的过程中,都会遇到这样的问题,UTF-8编码格式下英文和汉字占用的字节数不同,导致字符串截取过程中会遇到冲突,使用下面这个函数可以完美的解决这个问题。

function cc_msubstr($str, $length, $start=0, $charset="utf-8", $suffix=true){

        if(function_exists("mb_substr")){
            return mb_substr($str, $start, $length, $charset);
        }elseif(function_exists('iconv_substr')){
            return iconv_substr($str,$start,$length,$charset);
        }
        $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));
        if($suffix){
            return $slice."..";
        }else{
            return $slice;
        }
 }

转载于:https://www.cnblogs.com/beili/p/8962256.html

你可能感兴趣的文章
Android 之 用WebView显示网页
查看>>
go——搭建Win7下的Go开发环境
查看>>
ubuntu14.04 中国源
查看>>
学一学书里的django是怎么写views.py的
查看>>
微信支付开发(8) 刷卡支付
查看>>
scriptcs简介
查看>>
ajax-原理分析
查看>>
【leetcode】Jump Game I, II 跳跃游戏一和二
查看>>
【ML入门系列】(三)监督学习和无监督学习
查看>>
springboot 配置jsp支持
查看>>
window.open实现模式窗口
查看>>
椭圆曲线密码体制(ECC)简介
查看>>
Mac OS 终端利器 iTerm2
查看>>
使用贝塞尔曲线进行插值 一种非常简单的平滑多边形的方法
查看>>
WebMvcConfigurerAdapter已经过时的问题解决
查看>>
C# activex开发中 axwebbrowser控件及 IE浏览器设置
查看>>
032 报错
查看>>
喵喵的技术学习之路(一)
查看>>
C#(winform)设置窗体的启动位置
查看>>
【iOS开发-48】九宫格布局案例:自己主动布局、字典转模型运用、id和instancetype差别、xib反复视图运用及与nib关系...
查看>>