function Ssubstr ($string, $length, $dot = ' ... ') {global $charset; if (strlen ($string) <= $length) {return $string; } $string = Str_replace (Array (' & ', ' " ', ' < ', ' > '), Array (' & ', ' ' ', ' < ', ' > '), $ string); $strcut = "; if (Strtolower ($charset) = = ' Utf-8 ') {$n = $tn = $noc = 0; while ($n < strlen ($string)) {$t = Ord ($string [$n]); if ($t = = 9 | | $t = = 10 | | (<= $t && $t <= 126)) {$tn = 1; $n + +; $noc + +; } elseif (194 <= $t && $t <= 223) {$tn = 2; $n + = 2; $noc + = 2; } 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; } elseif ($t = = 252 | | $t = = 253) {$tn = 6; $n + = 6; $noc + = 2; } else {$n + +; } if ($noc >= $length) {break; }} if ($noc > $length) {$n-= $tn; } $strcut = substr ($string, 0, $n); } 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; Intercept a certain length of string (the function is valid for gb2312 use) <? function Wordscut ($string, $length, $sss =0) {if (strlen ($string) > $length) {if ($sss) {$length = $lengt h-3; $addstr =@#. @#; } for ($i = 0; $i < $length; $i + +) {if (Ord ($string [$i]) > 127) {$wordscut. = $string [$i]. $string [$i + 1]; /$i + +; Open source software: phpfensi.com} else {$wordscut. = $string [$i]; }} return $wordscut. $addstr; } return $string; }?>