PHP 算出字符串中中文个数

本文介绍了一种通过比较PHP内置函数strlen与mb_strlen的输出结果来计算字符串中中文字符数量的方法。当字符串包含中文字符时,由于中文字符在不同编码方式下占用的字节数不同,使用普通strlen计算会将一个中文字符错误地计为多个字符。文章提供了一个简单的公式,用以准确获取中文字符的数量。

算出某个字符串中中文的个数

 $str = "中文english";
 echo strlen($str);
 echo "<br>";
 echo mb_strlen($str, "utf8");

上面代码运行结果为

13

9

大家都知道,一个中文所占的字节数为 2,一个字母占 1 所以如果字符串中无中文时,这两个函数所求得出的字符长度是一样的。

有中文的话,使用 strlen 计算字符串时,有一个中文字符就会 比 mb_strlen 多出两个字节 所以中文个数为这两个函数计算出的结果除以中文字节个数

strlen(str) - mb_strlen(str, "utf8") / 2 

转载于:https://my.oschina.net/18y/blog/1846005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值