前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php截取字符串函数

php截取字符串函数

作者头像
WindWant
发布2020-09-11 10:22:48
1.3K0
发布2020-09-11 10:22:48
举报
文章被收录于专栏:后端码事后端码事
代码语言:javascript
复制
 1 public function sub_string($str, $len, $charset="utf-8")
 2 {
 3    if( !is_numeric($len) or $len <= 0) {//如果截取长度小于等于
 4        return "";      //返回空
 5    }
 6    $sLen = strlen($str);    //获取原始字串长度
 7    if( $len >= $sLen ) {   //如果截取长度大于总字符串长度
 8        return $str;     //直接返回当前字符串
 9    }
10    if ( strtolower($charset) == "utf-8" ) { //如果编码为为utf-8
11        $len_step = 3;      //则中文字符长度为3
12    } else {        //如果不是
13        $len_step = 2;      //如果是gb2312或big5编码,则中文字符长度为2
14    }
15    //执行截取操作
16    $len_i = 0;   //初始化计数当前已截取的字符串个数,此值为字符串的个数值
17    $substr_len = 0; //初始化应该要截取的总字节数
18    for( $i=0; $i < $sLen; $i++ ) { //开始循环
19        if ( $len_i >= $len ) break; //总截取$len个字符串后,停止循环
20        if( ord(substr($str,$i,1)) > 0xa0 ) { //如果是中文字符串
21            $i += $len_step - 1;   //
22            $substr_len += $len_step;  //当前总字节数加上相应编码的中文字符长度
23        } else {        //如果字符不是中文
24            $substr_len ++;     //加1个字节
25        }
26        $len_i ++;     //已经截取字符串个数增加
27    }
28    $result_str = substr($str,0,$substr_len ); //获取结果
29    return $result_str.'...';    //返回结果
30 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-03-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档