本文介绍的函数可以统计 UTF-8 字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的 length 方法,一个字符全部按 1 个长度计算。
PHP:
1 <?php
2 // 说明:计算 UTF-8 字符串长度(忽略字节的方案)
3 // 整理:http://www.CodeBit.cn
4
5 function strlen_utf8($str)
6 {
7 $i = 0;
8 $count = 0;
9 $len = strlen ($str);
10 while ($i < $len)
11 {
12 $chr = ord ($str[$i]);
13 $count++;
14 $i++;
15 if($i >= $len)
16 break;
17
18 if($chr & 0x80)
19 {
20 $chr <<= 1;
21 while ($chr & 0x80)
22 {
23 $i++;
24 $chr <<= 1;
25 }
26 }
27 }
28 return $count;
29 }
30
31 $str = "Codebit.cn - 聚合小段精华代码";
32
33 echo strlen_utf8($str);
34
35 ?>
2 // 说明:计算 UTF-8 字符串长度(忽略字节的方案)
3 // 整理:http://www.CodeBit.cn
4
5 function strlen_utf8($str)
6 {
7 $i = 0;
8 $count = 0;
9 $len = strlen ($str);
10 while ($i < $len)
11 {
12 $chr = ord ($str[$i]);
13 $count++;
14 $i++;
15 if($i >= $len)
16 break;
17
18 if($chr & 0x80)
19 {
20 $chr <<= 1;
21 while ($chr & 0x80)
22 {
23 $i++;
24 $chr <<= 1;
25 }
26 }
27 }
28 return $count;
29 }
30
31 $str = "Codebit.cn - 聚合小段精华代码";
32
33 echo strlen_utf8($str);
34
35 ?>
上面的代码将返回 21。
浙公网安备 33010602011771号