主要有兩個(gè)核心方法
//mb_strwidth : 返回字符串的寬度, 多字節(jié)字符通常是單字節(jié)字符的兩倍寬度
mb_strwidth ( string $str [, string $encoding = mb_internal_encoding() ] ) : int
//mb_strimwidth : 截取字符串的寬度,
mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker = "" [, string $encoding = mb_internal_encoding() ]] ) : string
例 :
$str = "我是田哥11s天"; // 中文兩個(gè)寬度, 數(shù)字/字母一個(gè)寬度,所以應(yīng)該是13個(gè)寬度
echo mb_strwidth($str, "UTF-8");
//13
echo mb_strimwidth($str, "0", 10);
//我是田哥11
echo mb_strimwidth($str, "0", 10, "...");
//我是田...
截取一個(gè)laravel的Str類的方法
function limit($value, $limit = 100, $end = '...')
{
if (mb_strwidth($value, 'UTF-8') <= $limit) {
return $value;
}
return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end;
}
echo Str::limit("我是田哥11s天", 10);
//我是田哥11...