http://expert.csdn.net/Expert/FAQ/List_Room_FAQ_Index.asp?Roomid=303

解决方案 »

  1.   

    /* 函数 sub_str($text, $length)
    ** 功能 从文本中截取指定长度字符串,考虑了对中文的处理
    ** 参数 $text 要截取的文本
    ** 参数 $length 要截取的字符串长度
    */
    function sub_str($text, $length)
    {
    for ($i=0; $i<$length; $i++)
    {
    $chr = substr($text, $i, 1);
    if (ord($chr) > 0x80)//字符是中文
    {
    $length++;
    $i++;
    } }
    $str = substr($text, 0, $length); 
    return $str;
    }
      

  2.   

    呵呵,二楼的朋友函数和dicuz里面用的差不多哦
    function wordscut($string, $length) 
    {
      $wordscut="";
        
    if(strlen($string) > $length) 
    {
    for($i = 0; $i < $length - 3; $i++)
     {
    if(ord($string[$i]) > 127) 
    {
    $wordscut .= $string[$i].$string[$i + 1];
    $i++;

    else 
    {
    $wordscut .= $string[$i];
    }
    }
    return $wordscut.' ...';
    }
    return $string;
    }