1 /**2 * Method Library-intercept string-"The function author is unknown"3 * @param string $string strings4 * @param int $length character length5 * @param string $dot whether to add after interception ...6 * @param string $charset encoding7 * @return String8 */9 Public functionCUTSTR ($string,$length,$dot= ' ... ',$charset= ' Utf-8 ') {Ten if(strlen($string) <=$length) { One return $string; A } - $string=Str_replace(Array(' & ', ' " ', ' < ', ' > '),Array(' & ', ' ' "', ' < ', ' > '),$string); - $strcut= ' '; the if(Strtolower($charset) = = ' Utf-8 ') { - $n=$tn=$noc= 0; - while($n<strlen($string)) { - $t=Ord($string[$n]);//ASCII? + if($t= = 9 | |$t= = 10 | | (<=$t&&$t<= 126)) { - $tn= 1;$n++;$noc++; +}ElseIf(194 <=$t&&$t<= 223) { A $tn= 2;$n+ = 2;$noc+ = 2; at}ElseIf(224 <=$t&&$t< 239) { - $tn= 3;$n+ = 3;$noc+ = 2; -}ElseIf(<=$t&&$t<= 247) { - $tn= 4;$n+ = 4;$noc+ = 2; -}ElseIf(248 <=$t&&$t<= 251) { - $tn= 5;$n+ = 5;$noc+ = 2; in}ElseIf($t= = 252 | |$t= = 253) { - $tn= 6;$n+ = 6;$noc+ = 2; to}Else { + $n++; - } the if($noc>=$length) { * Break; $ }Panax Notoginseng } - if($noc>$length) { the $n-=$tn; + } A $strcut=substr($string, 0,$n); the}Else { + for($i= 0;$i<$length;$i++) { - $strcut.=Ord($string[$i]) > 127?$string[$i].$string[++$i] :$string[$i]; $ } $ } - $strcut=Str_replace(Array(' & ', ' ' "', ' < ', ' > '),Array(' & ', ' " ', ' < ', ' > '),$strcut); - return $strcut.$dot; the}
PHP Intercept string