utf-8编码,一个汉字占三个字节: function smarty_modifier_cntruncate($string, $strlen = 20, $etc = '...', $keep_first_style = false) { $strlen = $strlen*3; $string = trim($string); if ( strlen($string) <= $strlen ) { return $string; } $str = strip_tags($string); $j = 0; www.444p.com for($i=0;$i<$strlen;$i++) { if(ord(substr($str,$i,1))>0xa0){ $i+=2; $j+=3;} else {$j++;} } $rstr=substr($str,0,$j); if (strlen($str)>$strlen ) {$rstr .= $etc;} www.444p.com php学习之家 if ( $keep_first_style == true && ereg('^<(.*)></p>,$string) ) { if ( strlen($str) <= $strlen ) { return $string; } $start_pos = strpos($string,substr($str,0,4)); $end_pos = strpos($string,substr($str,-4)); $end_pos = $end_pos+4; $rstr = substr($string,0,$start_pos) . $rstr . substr($string,$end_pos,strlen($string)); } return $rstr; } gb2312编码,一个汉字占两字节: function smarty_modifier_cntruncate($string, $strlen = 20, $etc = '...', $keep_first_style = false) { $strlen = $strlen*2; $string = trim($string); if ( strlen($string) <= $strlen ) { return $string; } $str = strip_tags($string); $j = 0; for($i=0;$i<$strlen;$i++) { if(ord(substr($str,$i,1))>0xa0) $j++; } if($j%2!=0) $strlen++; $rstr=substr($str,0,$strlen); if (strlen($str)>$strlen) {$rstr .= $etc;} if ( $keep_first_style == true && ereg('^<(.*)></p>,$string) ) { if ( strlen($str) <= $strlen ) { return $string; } $start_pos = strpos($string,substr($str,0,4)); $end_pos = strpos($string,substr($str,-4)); $end_pos = $end_pos+4; $rstr = substr($string,0,$start_pos) . $rstr . substr($string,$end_pos,strlen($string)); } return $rstr; }
smart下截取汉字
最新推荐文章于 2021-07-06 17:34:36 发布