您的位置:首页 > 编程语言 > PHP开发

[转]php获取含中文字符串长度

2014-05-06 16:17 274 查看
本文转载自:/article/3835010.html

PHP计算字符串长度,包括计算英文、GBK、UTF-8多种字符集下PHP如何计算字符串长度。英文字符串长度

strlen()是PHP自带的计算英文字符串的函数。

GBK字符串长度

中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数。 function abslength($str){

$len=strlen($str);

$i=0;

while($i<$len)

{

if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str[$i]))

{

$i+=2;

}

else

{

$i+=1;

}

}

return $i;

}

UTF8字符串长度

下 面定义的strlen_utf8函数可以统计UTF-8字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的 length方法,一个字符全部按 1 个长度计算。 <?php // 说明:计算 UTF-8 字符串长度(忽略字节的方案)

function strlen_utf8($str) {

$i = 0;

$count = 0;

$len = strlen ($str);

while ($i < $len) {

$chr = ord ($str[$i]);

$count++;

$i++;

if($i >= $len) break;

if($chr & 0x80) {

$chr <<= 1;

while ($chr & 0x80) {

$i++;

$chr <<= 1;

}

}

}

return $count;

}

$str = "www.phpq.net-PHP资讯";

echo strlen_utf8($str);

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: