在ctb.11cn.org 上抄来的一个函数。。function msubstr($str,$start,$len) { 
    $strlen=$start+$len; 
    for($i=0;$i<$strlen;$i++) { 
        if(ord(substr($str,$i,1))>0xa0) { 
            $tmpstr.=substr($str,$i,2); 
            $i++; 
        } else 
            $tmpstr.=substr($str,$i,1); 
    } 
    return $tmpstr; 
}

解决方案 »

  1.   

    <?PHP
    $str="这个字符好长呀,^_^";
    $Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...
    Echo "$Short_Str";
    Function csubstr($str,$start,$len) 

    $strlen=strlen($str); 
    $clen=0; 
    for($i=0;$i<$strlen;$i++,$clen++) 

    if ($clen>=$start+$len) 
    break; 
    if(ord(substr($str,$i,1))>0xa0) 

    if ($clen>=$start) 
    $tmpstr.=substr($str,$i,2); 
    $i++; 

    else 

    if ($clen>=$start) 
    $tmpstr.=substr($str,$i,1); 

    } return $tmpstr; 

    Function showShort($str,$len) 

    $tempstr = csubstr($str,0,$len); 
    if ($str<>$tempstr) 
    $tempstr .= "..."; //要以什么结尾,修改这里就可以.return $tempstr;