This article describes the PHP source analysis of the DZX1.5 string truncation function cutstr usage. Share to everyone for your reference. The specific analysis is as follows:
<?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 = = 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.