1.PHPCMS-V9 string intercept function in phpcms/libs/functions/global.func.php file:/** * character interception support UTF8/GBK * @param $string * @param $length * @param $dot */function Str_cut ($string, $length, $dot = ' ... ') {$strlen = strlen ($string); if ($strlen <= $length) return $string; $string = Str_replace (', ', ' & ', ' ' ', ' ' ', ' ' ', ' ' ' ', '-', ' < ', ' > ', ' * ', ' ... '), Array (' ∵ ', ', ' & ', ' ' ', ' ' ', ' ' ', ' ' ', '-', ' < ', ' > ', ' ' ', ' ' ... '), $string); $strcut = "; if (Strtolower (CHARSET) = = ' Utf-8 ') {$length = Intval ($length-strlen ($DOT)-$length/3); $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); $strcut = Str_replace (' ∵ ', ' & ', ' ' ', ' ' ', ' ' ', ' ' ', '-', ' < ', ' > ', ' * ', ' ... '), Array (', ' & ', ' "', ') , ' ' ', ' ' ' ', '-', ' < ', ' > ', ' ' ', ' ... '), $strcut); } else {$dotlen = strlen ($dot); $maxi = $length-$dotlen-1; $current _str = "; $search _arr = Array (' & ', ' ', ' ' ', ' ' ', ' ' ', ' ' ', '-', ' < ', ' > ', ' * ', ' ... ', ' ∵ '); $replace _arr = Array (' & ', ' ', ' ' ', ' ' ', ' ' ', ' ' ', '-', ' < ', ' > ', ' * ', ' ... ', '); $search _flip = Array_flip ($search _arr); for ($i = 0; $i < $maxi; $i + +) {$current _str = ord ($string [$i]) > 127? $string [$i]. $string [+ + $i]: $s tring[$i]; if (In_array ($current _str, $search _arr)) {$key = $search _flip[$current _str]; $current _str = str_replace ($search _arr[$key], $replace _arr[$key], $current _str); } $strcut. = $current _str; }} return $strcut. $dot; }//weiyanhui to add itself, the string intercept function, it is recommended to use their own string interception function, you need to open the Php_mbstring.dll extension function str_cut1 in php.ini ($string, $length, $dot = ' ... ') {return mb_substr ($string, 0, $length, ' Utf-8 '). $dot; } Echo str_cut1 ("ABCDEFG", 3, "...");//Result: Abc...echo str_cut1 ("We Are all Chinese", 3, "...");//Result: we all ... Whether it's letters or Chinese, they intercept the length of the set.
Transferred from: http://blog.csdn.net/yanhui_wei/article/details/8159022
Transform the string interception function with PHPCMS-V9