Home > Article > Backend Development > PHP source code analysis: DZX1.5 string truncation function cutstr usage_PHP tutorial
This article describes the usage of DZX1.5 string truncation function cutstr in php source code analysis. Share it with everyone for your reference. The specific analysis is as follows:
?
2 3 4 5 13 14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<🎜>/**<🎜> <🎜>* The function source is DZX1.5, the file is located at /source/function/function_core.php<🎜> <🎜>*/<🎜> <🎜>define('CHARSET','UTF-8');<🎜> <🎜>function cutstr($string, $length, $dot="...") {<🎜> <🎜>if(strlen($string)<=$length) {<🎜> <🎜>return $string;<🎜> <🎜>}<🎜> <🎜>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]; } } $pos = strrpos($strcut, chr(1)); if($pos !== false) { $strcut = substr($strcut,0,$pos); } return $strcut.$dot; } $string = 'Test database ablci102020@(#)!)!Test workforce ddk'; echo cutstr($string,15); /*End of php*/ |