本函数摘录自 BugFree,支持字母和gb2312或者utf-8混和字符串。
PHP:
1 <?php
2 // 说明:摘录自 BugFree 的字符截取函数
3 // 整理:labs.cnblogs.com
4
5 /**
6 * @package BugFree
7 * @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
8 *
9 *
10 * Return part of a string(Enhance the function substr())
11 *
12 * @author Chunsheng Wang <wwccss@263.net>
13 * @param string $String the string to cut.
14 * @param int $Length the length of returned string.
15 * @param booble $Append whether append "
": false|true
16 * @return string the cutted string.
17 */
18 function sysSubStr($String,$Length,$Append = false)
19 {
20 if (strlen($String) <= $Length )
21 {
22 return $String;
23 }
24 else
25 {
26 $I = 0;
27 while ($I < $Length)
28 {
29 $StringTMP = substr($String,$I,1);
30 if ( ord($StringTMP) >=224 )
31 {
32 $StringTMP = substr($String,$I,3);
33 $I = $I + 3;
34 }
35 elseif( ord($StringTMP) >=192 )
36 {
37 $StringTMP = substr($String,$I,2);
38 $I = $I + 2;
39 }
40 else
41 {
42 $I = $I + 1;
43 }
44 $StringLast[] = $StringTMP;
45 }
46 $StringLast = implode("",$StringLast);
47 if($Append)
48 {
49 $StringLast .= "
";
50 }
51 return $StringLast;
52 }
53 }
54
55 $String = "CodeBit.cn -- 简单、精彩、通用";
56 $Length = "18";
57 $Append = false;
58 echo sysSubStr($String,$Length,$Append);
59 ?>
2 // 说明:摘录自 BugFree 的字符截取函数
3 // 整理:labs.cnblogs.com
4
5 /**
6 * @package BugFree
7 * @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
8 *
9 *
10 * Return part of a string(Enhance the function substr())
11 *
12 * @author Chunsheng Wang <wwccss@263.net>
13 * @param string $String the string to cut.
14 * @param int $Length the length of returned string.
15 * @param booble $Append whether append "
": false|true 16 * @return string the cutted string.
17 */
18 function sysSubStr($String,$Length,$Append = false)
19 {
20 if (strlen($String) <= $Length )
21 {
22 return $String;
23 }
24 else
25 {
26 $I = 0;
27 while ($I < $Length)
28 {
29 $StringTMP = substr($String,$I,1);
30 if ( ord($StringTMP) >=224 )
31 {
32 $StringTMP = substr($String,$I,3);
33 $I = $I + 3;
34 }
35 elseif( ord($StringTMP) >=192 )
36 {
37 $StringTMP = substr($String,$I,2);
38 $I = $I + 2;
39 }
40 else
41 {
42 $I = $I + 1;
43 }
44 $StringLast[] = $StringTMP;
45 }
46 $StringLast = implode("",$StringLast);
47 if($Append)
48 {
49 $StringLast .= "
"; 50 }
51 return $StringLast;
52 }
53 }
54
55 $String = "CodeBit.cn -- 简单、精彩、通用";
56 $Length = "18";
57 $Append = false;
58 echo sysSubStr($String,$Length,$Append);
59 ?>
浙公网安备 33010602011771号