Heim  >  Artikel  >  php教程  >  mb_strlen 及 strlen 计算字符串长度区别

mb_strlen 及 strlen 计算字符串长度区别

WBOY
WBOYOriginal
2016-06-08 17:27:111091Durchsuche

mb_strlen 及 strlen 计算字符串长度区别在使用 mb_strlen必须把php.ini中php_mbstring.dll前面的\\\";\\\"去了才行,不过一般的套装包默认是去了的。

<script>ec(2);</script>
 代码如下 复制代码

//strlen
//int strlen ( string $string )

$str = '123456';
echo strlen($str); // 6

$str = ' ab cd www.111cn.net';
echo strlen($str); // 20

$ch ='中国';

echo strlen($ch);//4

echo utf8_strlen($str); //20
//

 代码如下 复制代码

function utf8_strlen($str)
    {
    $count = 0;

    for($i = 0; $i         {
        $value = ord($str[$i]);
        if($value > 127)
            {
            if($value >= 192 && $value                 $i++;
            elseif($value >= 224 && $value                 $i = $i + 2;
            elseif($value >= 240 && $value                 $i = $i + 3;
            else
                die('Not a UTF-8 compatible string');
            }
      
        $count++;
        }
  
    return $count;
}

// 下面来看看mb_strlen实例
echo '
';
$str ='中国';
echo mb_strlen($str,'gbk'); //2 长度为2,而刚才我们用strlen时输出的时4,从这里可看出mb_strlen设置了他的编码为gbk时就当中文处理了。
echo mb_strlen( $str,'utf8');//3

// 当我们设置mb_strlen参数是uft8编码时他的长度为3

//来看个计算中英文混排字符串长度实例

 

$str='中文a字1符中国WEB第一站www.111cn.net原创文章';
//计算如下
echo (strlen($str) + mb_strlen($str,'UTF8')) / 2;
echo
//输出结果
//10
/*
strlen //计算字符串长度,一个中文当2字符
mb_strlen //根据它的字符编码模式,统计字符quot;
在使用 mb_strlen必须把php教程.ini中php_mbstring.dll前面的";"去了才行,不过一般的套装包默认是去了的。
本站原创文章,转载注明来源www.111cn.net

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn