本文介绍的函数可以统计 UTF-8 字符串的长度,但不同的是,该函数并不考虑字节,这有些类似 Javascript 中字符串的 length 方法,一个字符全部按 1 个长度计算。
<?php
// 说明:计算 UTF-8 字符串长度(忽略字节的方案)
// 整理:http://www.CodeBit.cn
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 = "Codebit.cn - 聚合小段精华代码";
echo strlen_utf8($str);
?>
上面的代码将返回 21。