Although PHP has a ready to intercept string function substr (), but this function can not intercept the character string, to achieve this effect also requires us to write the corresponding function. Chinese characters have a variety of coding, such as Gb2312,utf-8, Chinese character string interception needs to distinguish this Chinese character coding, the following is a few solutions.
Intercept GB2312 Chinese string
0xa0) { $tmpstr. = substr ($str, $i, 2); $i + +; } else $tmpstr. = substr ($str, $i, 1); } return $tmpstr;}? >
Intercepting UTF8 encoded multibyte strings
Chinese character interception function supported by UTF-8 and GB2312
$sublen) return join ("', Array_slice ($t _string[0], $start, $sublen))." ..."; return join ("', Array_slice ($t _string[0], $start, $sublen)); } else {$start = $start * *; $sublen = $sublen; $strlen = strlen ($string); $tmpstr = "; for ($i =0; $i < $strlen; $i + +) {if ($i >= $start && $i < ($start + $sublen)) { if (Ord (substr ($string, $i, 1)) >129) {$tmpstr. = substr ($string, $i, 2); } else {$tmpstr. = substr ($string, $i, 1); }} if (Ord (substr ($string, $i, 1)) >129) $i + +; } if (strlen ($TMPSTR) < $strlen) $tmpstr. = "..."; return $tmpstr; }} $str = "ABCD string to intercept"; Echo cut_str ($str, 8, 0, ' gb2312 ');? >
Character intercept function for Bugfree
* @param string $String The string to cut.* @param int $Length The Length of returned string.* @param booble $Append W Hether append "...": false|true* @return string The cutted string.*/function syssubstr ($String, $Length, $Append = False) {if (strlen ($String) <= $Length) {return $String; } else {$I = 0; while ($I < $Length) {$StringTMP = substr ($String, $I, 1); if (Ord ($StringTMP) >=224) {$StringTMP = substr ($String, $I, 3); $I = $I + 3; } elseif (Ord ($StringTMP) >=192) {$StringTMP = substr ($String, $I, 2); $I = $I + 2; } else {$I = $I + 1; } $StringLast [] = $StringTMP; } $StringLast = Implode ("", $StringLast); if ($Append) {$StringLast. = "..."; } return $StringLast;}} $String = "www.bkjia.com"; $Length = ""; $Append = False;echo syssubstr ($String, $Length, $Append);? >
http://www.bkjia.com/PHPjc/752427.html www.bkjia.com true http://www.bkjia.com/PHPjc/752427.html techarticle Although PHP has a ready to intercept string function substr (), but this function can not intercept the character string, to achieve this effect also requires us to write the corresponding function. Han ...