This article describes the PHP source code analysis of the DZX1.5 string truncation function cutstr usage. Share to everyone for your reference. The specific analysis is as follows:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 This is the |
<?php/** * Function source DZX1.5, file location/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 || (<= $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] ; }} $pos = Strrpos ($strcut, Chr (1)); if ($pos!== false) {$strcut = substr ($strcut, 0, $pos);} return $strcut. $dot; $string = ' Test database ablci102020@ (#)!)! Test Labor DDK '; Echo Cutstr ($string, 15); /*end of php*/ |
The results of the operation are as follows:
Test Database ablci1020 ...
I hope this article will help you with your PHP program design.