PHP的strlen与mb_strlen

博客介绍了PHP中strlen()与mb_strlen()的不同。mb_strlen()第二个参数可指定字符编码,而PHP内置的strlen无法正确处理中文字符串,它得到的是字符串所占字节数,如UTF - 8编码的中文一个汉字占三个字节。

说明

strlen()与mb_strlen()的不同之处在于mb_strlen()第二个参数可以用于指定字符编码。

那么为什么要指定字符编码?因为PHP内置的字符串长度函数strlen无法正确处理中文字符串,所以它得到的只是字符串所占的字节数。对于UTF-8编码的中文,一个汉字占三个字节。

代码

<?php
  $a = '你好a';
  echo strlen($a);//输出的结果是7
?>

我知道有时候你想要的结果是3。那么怎么解决呢?就是用mb_strlen()。例如:
<?php
  $a = '你好a';
  echo mb_strlen($a,utf-8);//输出是3
?>
对于mb_strlen()如果不写第二个参数,就会使用内部编码,效果就和strlen()一样。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值