生成一个不超过指定长度的字符串函数
功能:
    将一个字符串转换成不超过特定长度(以字节计算)的字符串
返回:
    转换后不超过指定长度(以字节计算)的字符串
参数:
    $str 待转换的字符串
    $len 最大长度(以字节计算)

*/
function fixlenstr($str,$len){
   $str = (string)$str;
   $len = (int)$len;

   $strlen = strlen($str);
   if($len>$strlen) $len = $strlen;

   $i = 0;
   $fixlen = 0;
   while($i<$len){
      $chr = $str[$i];
      $i++;
      if(ord($chr)<0x80) $fixlen++;
      elseif($i<$len){
        $i++;
        $fixlen += 2;
      }
   }

   return substr($str,0,$fixlen);
}

/*测试
$test = array(
             \'工了a以b在d有e\' => array(\'ab\',-2,0,1,\'1\',3,4,5,6,14,16)
             );

while(list($str,$len)=each($test)){
   echo $str . \'<hr>\';
   $count = count($len);
   for($i=0;$i<$count;$i++){
      $fixlenstr = fixlenstr($str,$len[$i]);
      echo $len[$i] . \' ==> \' . $fixlenstr . \' ==> \' . strlen($fixlenstr) . \'<br>\';
   }
}
*/
?>