- Intercept UTF8 string
- function Utf8substr ($str, $from, $len)
- {
- Return Preg_replace (' #^ (?: [\x00-\x7f]|[ \xc0-\xff][\x80-\xbf]+) {0, '. $from. '} '.
- ' (?: [\x00-\x7f]| [\xc0-\xff] [\x80-\xbf]+) {0, '. $len. '}). * #s ',
- ' $ ', $str);
- }
- ?>
Copy Code
2. Chinese character interception function supported by UTF-8 and GB2312
- function Cut_str ($string, $sublen, $start = 0, $code = ' UTF-8 ')
- {
- if ($code = = ' UTF-8 ')
- {
- $pa = "/[\x01-\x7f]| [\XC2-\XDF] [\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]| [\xe1-\xef] [\X80-\XBF] [\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]| [\xf1-\xf7] [\X80-\XBF] [\X80-\XBF] [\x80-\xbf]/];
- Preg_match_all ($pa, $string, $t _string);
- if (count ($t _string[0])-$start > $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 ');
- ?>
Copy Code
3. Bugfree Character intercept function
- 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 = "codebit.cn-Simple, wonderful, universal";
- $Length = "18";
- $Append = false;
- Echo syssubstr ($String, $Length, $Append);
- ?>
Copy Code |