- // Truncate a Chinese string
- 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;
- }
- ?>
2. truncate UTF-8 encoded multi-byte strings
- // Truncate the 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', '$ 1', $ str );
- }?>
3. Chinese character truncation functions supported by UTF-8 and GB2312
- /*
- Utf-8, gb2312 are supported by the Chinese character truncation function cut_str (string, truncation length, start length, encoding); default encoding for UTF-8 start length is 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 --> $ sublen) return join ('', array_slice ($ t_string [0], $ start, $ sublen )). "... ";
- Return join ('', array_slice ($ t_string [0], $ start, $ sublen ));
- }
- Else
- {
- $ Start = $ start * 2;
- $ Sublen = $ sublen * 2;
- $ 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 =" string to be intercepted by abcd "; echo cut_str ($ str, 8, 0, 'gb2312');?>
4. BugFree character truncation function
- /**
- * @ Package BugFree
- * @ Version $ Id: FunctionsMain. inc. php, v 1.32 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, brilliant, and general ";
- $ Length = "18 ";
- $ Append = false;
- Echo sysSubStr ($ String, $ Length, $ Append );
- ?>
|