PHP获取字符串中英文混合长度。
2010-11-09 22:42
477 查看
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);
$cnNum = 0;
for($i=0;$i<$num;$i++){
if(ord(substr($str,$i+1,1))>127){
$cnNum++;
$i++;
}
}
$enNum = $num-($cnNum*2);
$number = ($enNum/2)+$cnNum;
return ceil($number);
}
//测试输出长度都为15
$str1 = '测试测试测试测试测试测试测试测';
$str2 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
$str3 = 'aa测试aa测试aa测试aa测试aaaaaa';
echo strLength($str1,'gb2312');
echo strLength($str2,'gb2312');
echo strLength($str3,'gb2312');
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);
$cnNum = 0;
for($i=0;$i<$num;$i++){
if(ord(substr($str,$i+1,1))>127){
$cnNum++;
$i++;
}
}
$enNum = $num-($cnNum*2);
$number = ($enNum/2)+$cnNum;
return ceil($number);
}
//测试输出长度都为15
$str1 = '测试测试测试测试测试测试测试测';
$str2 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
$str3 = 'aa测试aa测试aa测试aa测试aaaaaa';
echo strLength($str1,'gb2312');
echo strLength($str2,'gb2312');
echo strLength($str3,'gb2312');
相关文章推荐
- PHP获取字符串中英文混合长度
- PHP获取中英文混合字符串长度及截取
- PHP获取字符串中英文混合长度
- PHP中获取中英文混合字符串长度[主要是指个数,而不是字符串长度](转)
- PHP获取中英文混合字符串长度及截取
- PHP 获取中英文混合字符串长度
- C#与JS实现 获取指定字节长度 中英文混合字符串 的方法
- PHP如何获取中文和 中英文混字符串长度
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- php混合字符串长度和截取 中英文
- PHP获取中英混合字符串长度的方法
- PHP获取中英混合字符串长度的方法
- JavaScript获取中英文混合字符串长度的方法示例
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- 测试了3种获取中英文混合字符串长度的方法,看来还是使用循环来的快
- javascript获取中英文混合字符串的长度方法
- PHP针对中英文混合字符串长度判断及截取方法示例
- PHP如何获取混合中文字符串长度
- C#实现 获取指定字节长度 中英文混合字符串 的方法