//字符串截取函数
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.   

    http://cn.php.net/manual/zh/ref.mbstring.phpMultibyte String Functions
      

  2.   

    GBK编码:
    $re = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
    $str="社区中心";
    preg_match_all($re,$str,$res);
    print_r($res);
    UTF-8编码
    $re = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
    $str="社区中心";
    preg_match_all($re,$str,$res);
    print_r($res);
      

  3.   

    谢谢mouzhi(谋之) 这个如何放入array内?
    $content2=msubstr($content,0,strlen($content));
    echo $content2[0]; //<---不是正确输入的字想将每个中文字放到入array里
      

  4.   

    Mlvlfforever(那一年) 的改用mb_strlen不行啊
    不能正确出字