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]) & gt; 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 ('&', '"', '<', '>'), 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 | (32 <= $ 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 (240 <=$ 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]) & gt; 127? $ String [$ I]. $ string [++ $ I]: $ string [$ I]; } } $ Strcut = str_replace (array ('&', '"', '<', '>'), array ('&', '"', '<', '>'), $ strcut ); Return $ strcut. $ dot; } |