function Substrs ($content, $length, $add = ' Y ') { if (strlen ($content) > $length) { if ($GLOBALS [' Db_charset ']!= ' Utf-8 ') { $retstr = "; for ($i =0; $i < $length-2; $i + +) { $retstr. = Ord ($content [$i]) > 127? $content [$i]. $content [+ + $i]: $content [$i]; } Return $RETSTR. ($add = = ' Y '? ' ..' : ''); } Return Utf8_trim (substr ($content, 0, $length)). ($add = = ' Y '? ' ..' : ''); } return $content; } function Utf8_trim ($STR) { $hex = "; $len = strlen ($str)-1; for ($i = $len; $i >=0; $i-=1) { $ch = Ord ($str [$i]); $hex. = "$ch"; if (($ch & 128) ==0 | | ($ch & 192) ==192) { Return substr ($str, 0, $i); } } return $STR. $hex; }
function Cutstr ($string, $length, $dot = ' ... ') { Global $charset; if (strlen ($string) <= $length) { return $string; } $string = Str_replace (' & ', ' ' ', ' < ', ' > '), 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 (' & ', ' "', ' < ', ' > '), $strcut); return $strcut. $dot; } |