当前位置: 首页 > 后端技术 > PHP

TP中的模板截取

时间:2023-03-29 17:09:28 PHP

/*utf-8,gb2312支持汉字截取函数cut_str(string,截取长度,起始长度,encoding);编码默认为utf-8,起始长度默认为0*/functioncut_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)returnjoin('',array_slice($t_string[0],$start,$sublen));returnjoin('',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;}}