比较完善的php取字符函数

用了几个取字符函数mb_substr之类的都不怎么好用,还是这个比较好用一点。

/**
 * 截断函数,防止乱码
 *
 *
 */ 
function z_substr($sourcestr='',$i=0,$cutlength=150,$endstr='') 
{ 
    $str_length=strlen($sourcestr);//字符串的字节数 
    while (($n<$cutlength) and ($i<=$str_length)) 
    { 
        $temp_str=substr($sourcestr,$i,1); 
        $ascnum=Ord($temp_str);//ascii码 
        if ($ascnum>=224) 
        { 
            $returnstr=$returnstr.substr($sourcestr,$i,3); 
            $i=$i+3; 
            $n++; 
        }elseif ($ascnum>=192) 
        { 
            $returnstr=$returnstr.substr($sourcestr,$i,2); 
            $i=$i+2; 
            $n++; 
        }else 
        { 
            $returnstr=$returnstr.substr($sourcestr,$i,1); 
            $i=$i+1; 
            $n=$n+0.5; 
        } 
    } 
    if($i<$str_length)$returnstr.=$endstr; 
    return $returnstr; 
} 


你可能感兴趣的:(PHP)