php截取

学无止境✅  2015-12-6
0






function cut_str($string, $sublen, $start = 0, $code = 'utf-8')
{
    if($code == 'utf-8'){
   $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
        preg_match_all($pa, $string, $t_string);
        if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
                return join('', array_slice($t_string[0], $start, $sublen));
    }else{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
        for($i=0; $i< $strlen; $i++)
        {
            if($i>=$start && $i< ($start+$sublen))
            {
                if(ord(substr($string, $i, 1))>129)
                {
                    $tmpstr.= substr($string, $i, 2);
                }
                else
                {
                    $tmpstr.= substr($string, $i, 1);
                }
            }
            if(ord(substr($string, $i, 1))>129) $i++;
        }  
    //超出多余的字段就显示...
            if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
        return $tmpstr;
      }
   }
 
 
 
 
$str ="123456啊啊啊啊啊11111,,,";
echo cut_str($str,10);




游客  现在