zoukankan      html  css  js  c++  java
  • PHP strlen和mb_strlen的区别

    先看案例:

    echo mb_internal_encoding();
    echo "<br/>";
    $str="D.C is 中国人"; //
    echo strlen($str);
    echo "<br>";
    echo mb_strlen($str,"utf-8"); 
    echo "<br/>";
    echo mb_strlen($str,"gbk");

    输出结果:

    UTF-8
    16
    10
    12

    在strlen计算中,对待一个UTF8的中文字符,处理为3个字节长度,所以为3+1+2+1+9=16个

    当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符,所以为3+1+2+1+3=10;

    当mb_strlen的内码选择为gbk的时候,一个中文字符当成1.5个字符来处理来处理,最后就是:3+1+2+1+4.5=11.5

    函数:mb_internal_encoding()会得到当前PHP使用的内部编码

    strlen,得到的是字符串所占的字节数,所以在查看一个字符串的长度的时候,strlen并不能得到我们需要的真实值

    mb_strlen 函数可以很好的处理这一点

    注意:mb_strlen函数并不是php的核心函数,只是PHP的一个扩展函数,使用之前要判断是否加在的mbstring扩展模块,在Php.ini文件中可以查看相关配置

    联系我->邮件写信
  • 相关阅读:
    check事件
    JAVA----泛型
    JAVA集合的遍历for循环、Iterator迭代器
    JAVA 集合的定义分类
    JAVA面向对象---方法的重写与重载
    JAVA 面向对象---继承
    JAVA 面向对象
    JAVA ArrayList集合
    JAVA基础测试
    JAVA中 引用数据类型(类)
  • 原文地址:https://www.cnblogs.com/bing-yu12/p/6600153.html
Copyright © 2011-2022 走看看