【www.gdgbn.com--php函数】

 1 /**
 2  * php教程获取字符串中英文混合长度
 3  * @param $str string 字符串
 4  * @param $$charset string 编码
 5  * @return 返回长度,1中文=1位,2英文=1位
 6  */
 7 function strlength($str,$charset="utf-8"){
 8     if($charset=="utf-8") $str = iconv("utf-8","gb2312",$str);
 9     $num = strlen($str);
10     $cnnum = 0;
11     for($i=0;$i<$num;$i++){
12         if(ord(substr($str,$i+1,1))>127){
13             $cnnum++;
14             $i++;
15        }
16     }
17     $ennum = $num-($cnnum*2);
18     $number = ($ennum/2)+$cnnum;
19     return ceil($number);
20 }
21
22 //测试输出长度都为15
23 $str1 = "测试测试测试测试测试测试测试测";
24 $str2 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
25 $str3 = "aa测试aa测试aa测试aa测试aaaaaa";
26 echo strlength($str1,"gb2312");
27 echo strlength($str2,"gb2312");
28 echo strlength($str3,"gb2312");

本文来源:http://www.gdgbn.com/jiaocheng/28812/