中文截取字符串

echo mb_substr("我abc的名字是肖岩",0,7,'utf-8')."<br>";//我abc的名字
echo mb_strcut("我abc的名字是肖岩", 0,9,'utf-8');//我abc的

其中mb_substr中的第三个参数代表字符个数,mb_strcut函数中的第三个参数代表字符数,utf-8编码下汉字3个字符

还可以使用自定义函数截取,不过没有上述的好用

function GBsubstr($string,$start,$length){
    if (strlen($string)>$length) {
        $str=null;
        $len=strlen($string);
        for ($i=0; $i <$len ; $i++) { 
            if (ord(substr($string, $i,1))>0xa0) {
                $str.=substr($string, $i,2);
            }else{
                $str.=substr($string, $i,1);
            }
        }
        return $str;
    }else{
        return $string;
    }
}

ord()函数是根据字符返回相应的ASSIC码,跟chr()函数相反

你可能感兴趣的:(中文截取字符串)