strlen()与mb_strlen()的区别

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,488评论 0 9
  • 字符是用户可以读写的最小单位。计算机所能支持的字符组成的集合,就叫做字符集。字符集通常以二维表的形式存在。二维表的...
    刘惜有阅读 8,230评论 2 14
  • 厉国刚:你是一个有思想的人吗 记得大学毕业,刚开始工作的时候,听到一位同事对另一位同事说:你是一个有思想的人。 由...
    微观大道阅读 347评论 0 1
  • 可堪回首,一曲荒芜一调凉 天地之间,人走茶凉剩悲伤
    witch肥阅读 232评论 0 0
  • 盼望着, 盼望着, 学习的时间终于到了。 你背一个包, 我背一个包, 坐上飞机, 直奔青岛。 高老师的高明, 杨老...
    辰辰2008阅读 195评论 0 1