- Intercept Chinese strings
- function Mysubstr ($str, $start, $len) {
- $tmpstr = "";
- $strlen = $start + $len;
- for ($i = 0; $i < $strlen; $i + +) {
- if (Ord (substr ($str, $i, 1))--0xa0) {
- $tmpstr. = substr ($str, $i, 2);
- $i + +;
- } else
- $tmpstr. = substr ($str, $i, 1);
- }
- return $tmpstr;
- }
- ?>
Copy Code
2. Intercept UTF8 encoded multibyte string
- 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
3. Chinese character interception function supported by UTF-8 and GB2312
- /*
- Utf-8, gb2312 are supported by the Chinese character interception function Cut_str (string, intercept length, start length, encoding); Encoding defaults to utf-8 start length defaults to 0
- */
- 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--and $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 needs to intercept the string"; Echo Cut_str ($STR, 8, 0, ' gb2312 ');?>
Copy Code
4. Bugfree character intercept function
- /**
- * @package Bugfree
- * @version $Id: functionsmain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss EXP $
- *
- *
- * Return part of a string (Enhance the function substr ())
- *
- * @author Chunsheng Wang
- * @param string $String the string to cut.
- * @param int $Length The Length of returned string.
- * @param booble $Append whether 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 = "codebit.cn-Simple, wonderful, universal";
- $Length = "18";
- $Append = false;
- Echo syssubstr ($String, $Length, $Append);
- ?>
Copy Code |