美文网首页
strlen()与mb_strlen()的区别

strlen()与mb_strlen()的区别

作者: 人在码途 | 来源:发表于2018-09-04 11:09 被阅读17次

    strlen()与mb_strlen()都是用于获取字符串长度的,那么它们两个有什么不同?

    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()一样。

    相关文章

      网友评论

          本文标题:strlen()与mb_strlen()的区别

          本文链接:https://www.haomeiwen.com/subject/cckgwftx.html