素材牛

PHP截取字符串长度

 所属分类:PHP/MySql-函数/算法

 浏览:1118次  下载:2次  评论:26次  发布时间:2017-08-07
PHP截取字符串长度
积分说明:注册即送5牛币,每天签到可获得5牛币,第三方账号登陆、注册直接赠送20牛币!    我要充值   更多积分说明»
素材描述:我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用...表示,以下函数可以满足你的需求。

函数:

function cutStr($string, $sublen, $start = 0, $code = 'UTF-8')
{ 
    if($code == 'UTF-8')
    { 
        $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"; 
        preg_match_all($pa, $string, $t_string); 
 
        if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."..."; 
        return join('', array_slice($t_string[0], $start, $sublen)); 
    }
    else
    { 
        $start = $start*2; 
        $sublen = $sublen*2; 
        $strlen = strlen($string); 
        $tmpstr = ''; 
 
        for($i=0; $i<$strlen; $i++)
	{ 
            if($i>=$start && $i<($start+$sublen))
	    { 
                if(ord(substr($string, $i, 1))>129)
                { 
                    $tmpstr.= substr($string, $i, 2); 
                }
		else
		{ 
                    $tmpstr.= substr($string, $i, 1); 
                } 
            } 
            if(ord(substr($string, $i, 1))>129) $i++; 
        } 
        if(strlen($tmpstr)<$strlen ) $tmpstr.= "..."; 
        return $tmpstr; 
    } 
} 

使用方法:

Utf-8、gb2312都支持的汉字截取函数 

cut_str(字符串, 截取长度, 开始长度, 编码); 

编码默认为 utf-8 

开始长度默认为 0

讨论这个项目(26)回答他人问题或分享插件使用方法奖励牛币

Lv1 青铜

    MOMIYU
    2017年09月27日 09:03

Lv2 白银

    728739414
    2017年09月27日 21:02

    不错哦!!!!!!

    回复

Lv4 铂金1

    吃葡萄的阿七
    2017年10月17日 14:38

Lv4 铂金1

    okky007
    2017年10月20日 11:12

    去试试,不知道准确不准确

    回复

Lv2 白银

    人在江湖飘
    2017年12月11日 15:42

    我的锅里,这么难

    回复

Lv6 铂金3

    18336357783
    2017年12月28日 10:12

Lv2 白银

    a17805936991
    2018年01月18日 16:03

Lv2 白银

    mcb
    2018年01月25日 08:12

Lv2 白银

    mcb
    2018年01月25日 08:13

    真的是好东西,真好

    回复

Lv2 白银

    mcb
    2018年01月25日 08:14

    真的是好东西,真好正好是需要的

    回复

Lv2 白银

    mcb
    2018年01月25日 08:15

    真的是好东西,真好正好是需要的,非常感谢

    回复

Lv2 白银

    mcb
    2018年01月25日 08:15

    真的是好东西,真好正好是需要的,非常感谢,太感谢了

    回复

Lv4 铂金1

    钱掌柜阿周
    2018年03月01日 13:45

    真的是好东西,真好正好是需要的,非常感谢,太感谢了

    回复

Lv3 黄金

    钱掌柜贵哥
    2018年03月01日 13:49

    非常感谢,太感谢了

    回复

Lv3 黄金

    周川淇
    2018年03月15日 23:41

    真的是好东西,真好

    回复

Lv5 铂金2

    857819854
    2018年03月20日 16:34

Lv1 青铜

    guoqw
    2018年03月29日 16:40

    中文截取,挺好的

    回复

Lv5 铂金2

    alone123
    2018年04月04日 16:21

    中文截取,挺好的

    回复

Lv5 铂金2

    1214741711
    2018年04月04日 16:24

    中文截取,挺好的

    回复

Lv5 铂金2

    857819854
    2018年04月04日 16:27

    中文截取,挺好的

    回复

Lv1 青铜

    军少网
    2018年04月22日 15:35

    中文截取,挺好的

    回复

Lv2 白银

    艺美科技
    2018年05月17日 15:01

Lv2 白银

    13452078031
    2018年06月20日 10:47

    中文截取,挺好的

    回复

Lv3 黄金

    bigdog
    2018年06月26日 03:29

Lv3 黄金

    pluspig
    2018年06月28日 05:51

Lv2 白银

    都过去了jj
    2018年08月08日 13:13
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的牛币余额:0 已下载次数:2
所需牛币:1 开始下载

积分获取途径:

牛币:可通过签到、评论、充值、发布素材获得 »在线充值

钻石:只能通过充值、发布素材获取 »在线充值

会员账号
会员密码
安全验证