当前位置:  首页  >  PHP教程  >  PHP 应用  >  常见问题

mb_strlen及strlen计算字符串长度区别-PHP源码

mb_strlen及strlen计算字符串长度区别在使用mb_strlen必须把php.ini中php_mbstring.dll前面的\;\去了才行,不过一般的套装包默认是去了的。
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 < strlen($str); $i++)
{
$value = ord($str[$i]);
if($value > 127)
{
if($value >= 192 && $value <= 223)
$i++;
elseif($value >= 224 && $value <= 239)
$i = $i + 2;
elseif($value >= 240 && $value <= 247)
$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

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有