美文网首页
php 截取中文而不出现不能识别的字符

php 截取中文而不出现不能识别的字符

作者: 天上掉下的胖纸 | 来源:发表于2020-07-11 11:53 被阅读0次

    主要有两个核心方法

    //mb_strwidth : 返回字符串的宽度, 多字节字符通常是单字节字符的两倍宽度
    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天"; // 中文两个宽度, 数字/字母一个宽度,所以应该是13个宽度
     echo  mb_strwidth($str, "UTF-8"); 
    //13
    
    
    echo mb_strimwidth($str, "0", 10);
    //我是田哥11
    
    echo mb_strimwidth($str, "0", 10, "...");
    //我是田...
    
    

    截取一个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...
    

    相关文章

      网友评论

          本文标题:php 截取中文而不出现不能识别的字符

          本文链接:https://www.haomeiwen.com/subject/suhstktx.html