php计算中文字符串的长度
直接上代码,原理见末尾原文链接:
<?php
function mbstrlen($str,$encoding="utf8")
{
if (($len = strlen($str)) == 0) {
return 0;
}
$encoding = strtolower($encoding);
if ($encoding == "utf8" or $encoding == "utf-8") {
$step = 3;
} elseif ($encoding == "gbk" or $encoding == "gb2312") {
$step = 2;
} else {
return false;
}
$count = 0;
for ($i=0; $i<$len; $i++) {
$count++;
//如果字节码大于127,则根据编码跳几个字节
if (ord($str{$i}) >= 0x80) {
$i = $i + $step - 1;//之所以减去1,因为for循环本身还要$i++
}
}
return $count;
}
echo mbstrlen(iconv("utf-8","gbk","你是我的小苹果"),"gbk");
echo mbstrlen("你是我的小苹果");
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。