截取UTF-8编码字符串的方法有很多,我也分享一个:
代码语言:javascript复制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;
}