utf8 中文字符串截取

php函数

2010-06-13 10:21

<?php
function SubTitle($String,$Length) {
      if (mb_strwidth($String, 'UTF8') <= $Length ){
          return $String;
      }else{
          $I = 0;
          $len_word = 0;
          while ($len_word < $Length){
              $StringTMP = substr($String,$I,1);
              if ( ord($StringTMP) >=224 ){
                  $StringTMP = substr($String,$I,3);
                  $I = $I + 3;
                  $len_word = $len_word + 2;
              }elseif( ord($StringTMP) >=192 ){
                  $StringTMP = substr($String,$I,2);
                  $I = $I + 2;
                  $len_word = $len_word + 2;
              }else{
                  $I = $I + 1;
                  $len_word = $len_word + 1;
              }
              $StringLast[] = $StringTMP;
          }

          if (is_array($StringLast) && !empty($StringLast)){
              $StringLast = implode("",$StringLast);
              $StringLast .= "...";
          }
          return $StringLast;  
      }  
}   
echo SubTitle('1234哈哈5哈哈哈哈',10);


?>