出现了半个汉字
$title=substr($row[title],"0",$titlelen").chr(0)."..."

解决方案 »

  1.   

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

  2.   

    function ccStrLeft($str,$len) #从左边截取中英文混合字符串
    {
        $ascLen=strlen($str);   if($ascLen<=$len) return $str;
        $hasCC=ereg("[\xA1-\xFE]",$str); #同上
        $hasAsc=ereg("[\x01-\xA0]",$str);
        if(!$hasCC) return substr($str,0,$len);
        if(!$hasAsc)
         if($len & 0x01) #如果长度是奇数
            return substr($str,0,$len+$len-2);
         else
             return substr($str,0,$len+$len);
        $cind=0;$flag=0;
        while($cind<$ascLen)
        {
            if(ord(substr($str,$cind,1))<0xA1) $flag++;
            $cind++;
        }
         if($flag & 0x01)
            return substr($str,0,$len);
         else
             return substr($str,0,$len-1);
    }