实验室

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

本文介绍的函数可以统计 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 ?>


上面的代码将返回 21。

posted on 2009-05-12 16:42  实验室  阅读(812)  评论(0)    收藏  举报