PHP中经常要用到一些,针对字符的处理。比如截取动作。使用系统自带的substr函数的时候对汉字处理上会存在问题,出现字符混乱的问题,因为汉字在里面是存在连个字符,而英文是一个字符。substr处理的时候就会对汉字出现问题。
下面这里给出一个可以用的PHP截取函数。验证可用。

  1. <?php 
  2.   
  3.    function sysSubStr($String,$Length,$Append = false) 
  4.     { 
  5.         if (strlen($String) <= $Length ) 
  6.         { 
  7.             return $String
  8.         } 
  9.         else 
  10.         { 
  11.             $I = 0; 
  12.             while ($I < $Length
  13.             { 
  14.                 $StringTMP = substr($String,$I,1); 
  15.                 if ( ord($StringTMP) >= 224 ) 
  16.                 { 
  17.                     $StringTMP = substr($String,$I,3); 
  18.                     $I = $I + 3; 
  19.                 } 
  20.                 elseif( ord($StringTMP) >= 192 ) 
  21.                 { 
  22.                     $StringTMP = substr($String,$I,2); 
  23.                     $I = $I + 2; 
  24.                 } 
  25.                 else 
  26.                 { 
  27.                     $I = $I + 1; 
  28.                 } 
  29.                 $StringLast[] = $StringTMP
  30.             } 
  31.             $StringLast = implode("",$StringLast); 
  32.             if($Append
  33.             { 
  34.                 $StringLast .= "..."
  35.             } 
  36.             return $StringLast
  37.         } 
  38.     } 
  39. ?>