Php: define (CHARSET, 'utf-8'), a string function method based on Chinese characters '); // default system encoding/*** cut string based on Chinese characters * @ param $ string-string * @ param $ length-length php: cut string function method based on Chinese characters
Define (CHARSET, 'utf-8 '); // default system encoding/*** cut the string according to Chinese characters * @ param $ string-string * @ param $ length-length * @ param $ doc-scaling suffix * @ return trim string */function cutstr ($ string, $ length, $ dot = '... ') {if (strlen ($ string) <= $ length) {return $ string ;}$ pre = chr (1); $ end = chr (1 ); $ string = str_replace (array ('&', '"', '<', '>'), array ($ pre. '&'. $ end, $ pre. '"'. $ end, $ pre. '<'. $ en D, $ pre. '> '. $ end), $ 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])> 127? $ String [$ I]. $ string [++ $ I]: $ string [$ I] ;}}$ strcut = str_replace (array ($ pre. '&'. $ end, $ pre. '"'. $ end, $ pre. '<'. $ end, $ pre. '> '. $ end), array ('&', '"', '<', '>'), $ strcut); $ pos = strrpos ($ strcut, chr (1); if ($ pos! = False) {$ strcut = substr ($ strcut, 0, $ pos);} return $ strcut. $ dot ;}