素材牛

PHP截取字符串长度

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

 浏览:1306次-  下载: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)回答他人问题或分享使用心得会奖励牛币

MOMIYU
2017年09月27日

不错 学习了

回复
728739414
2017年09月27日

不错哦!!!!!!

回复
吃葡萄的阿七
2017年10月17日

厲害了

回复
okky007
2017年10月20日

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

回复
人在江湖飘
2017年12月11日

我的锅里,这么难

回复
18336357783
2017年12月28日

不错哈

回复
a17805936991
2018年01月18日

还可以的

回复
mcb
2018年01月25日

真的是好东西

回复
mcb
2018年01月25日

真的是好东西,真好

回复
mcb
2018年01月25日

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

回复
mcb
2018年01月25日

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

回复
mcb
2018年01月25日

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

回复
钱掌柜阿周
2018年03月01日

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

回复
钱掌柜贵哥
2018年03月01日

非常感谢,太感谢了

回复
周川淇
2018年03月15日

真的是好东西,真好

回复
857819854
2018年03月20日

这个简单

回复
guoqw
2018年03月29日

中文截取,挺好的

回复
alone123
2018年04月04日

中文截取,挺好的

回复
1214741711
2018年04月04日

中文截取,挺好的

回复
857819854
2018年04月04日

中文截取,挺好的

回复
军少网
2018年04月22日

中文截取,挺好的

回复
艺美科技
2018年05月17日

东西挺好!

回复
13452078031
2018年06月20日

中文截取,挺好的

回复
bigdog
2018年06月26日

我也来学些知识

回复
pluspig
2018年06月28日

不错 学习了

回复
都过去了jj
2018年08月08日

学习了

回复
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的牛币余额:0 已下载次数:2
所需牛币:1 开始下载

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

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