分享一个支持UTF-8的PHP字符串截取函数

截取UTF-8编码字符串的方法有很多,我也分享一个:

function cutStr($Str, $Length)
{
    global $s;
    $i = 0;
    $l = 0;
    $ll= strlen($Str);
    $s = $Str;
    $f = true; 

    while ($i <= $ll) {
        if (ord($Str{$i}) < 0x80) {
            $l++; $i++;
        } elseif (ord($Str{$i}) < 0xe0) {
            $l++; $i += 2;
        } elseif (ord($Str{$i}) < 0xf0) {
            $l += 2; $i += 3;
        } elseif (ord($Str{$i}) < 0xf8) {
            $l += 1; $i += 4;
        } elseif (ord($Str{$i}) < 0xfc) {
            $l += 1; $i += 5;
        } elseif (ord($Str{$i}) < 0xfe) {
            $l += 1; $i += 6;
        }
        if (($l >= $Length - 1) && $f) {
            $s = substr($Str, 0, $i);
            $f = false;
        }
        if (($l > $Length) && ($i < $ll)) {
            $s = $s . '...';
            break; //如果进行了截取,字符串末尾加省略符号“...”
        }
    }
    return $s;
}

相关内容:

发表评论