PHP实现中文字串截取无乱码的方法

在PHP中需要对字符串进行截取,如果没有装mb扩展(mb_substr函数),对中文截取就需要进行相应的处理。
下面是对字符串 “世s界s的功s\\\夫萨的mn是非得失sdf dsf dsf 达” 截取10个字符,最后的输出是“世s界s的”,编码均为utf8:
红色部分为重点。要牢记

<?php
$ss = '世s界s的功s\\\夫萨的mn是非得失sdf dsf dsf 达';
$aa = CHsubstr($ss, 0, 10);
echo($aa);

function CHsubstr($string, $start, $length)
{
    if(strlen($string)>$length)
    {
        $str='';
        $len=$start+$length;
        $i = $start;
        while($i<$len)
        {
             if(ord(substr($string, $i, 1))>=128)
            {
                $str.=substr($string, $i, 3);
                $i = $i+ 3;
            }

            else
            {
                $str.=substr($string, $i, 1);
                $i ++;
            }
        }
        return $str;
    }
    else
    {
        return $string;
    }
}
?>

你可能感兴趣的:(PHP,中文,乱码,休闲,字串)