gbless 发表于 2017-3-21 09:47:59

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);
?>

PHP字符串相关文章:
PHP字符串终极教程:http://www.phpq.net/tutorial/php-string-guide.html
PHP计算字符串长度:http://www.phpq.net/tutorial/php-string-length.html
PHP截取字符串:http://www.phpq.net/tutorial/php-string-interception.html
页: [1]
查看完整版本: PHP计算字符串长度