php中处理中文字符串mb_strlen 和 strlen

2018-10-08 16:35:32 舟亭 语言

    在php程序中,我们经常会遇到关于中文字符串的处理。

    例如:

   

        $userName = "zw张三123";

        if(用户名长度>12) {

            //用户名的长度不能超过12位;

        }

        //显示用户名,部分用星号代替

   ?>

    一般在做项目的时候,我们会统一规定好字符类型,如“utf8”;

    strlen计算字符串长度会把中文按3个字节计算(或者更多),而mb_strlen以utf8编码会将中文算为1个字节。

    如:

   

    $str = "简体中文"; 

    echo strlen($str); //结果:12 

    echo mb_strlen($str, 'UTF-8');    //结果:4

    ?>


    由于中文字符的存在,如果使用strlen、substr_replace并不能得到想要的结果,在这种情况下,需要使用php_mbstring扩展,我们需要确保在php.ini中扩展已经被加载,通过扩展函数mb_strlen、mb_substr可以更好地处理该类问题。

    


标签: php

评论:

发表评论:

前方两条路,一条通往远方的田野,一条通往凌霄的山巅

Powered by zzchao

浙ICP备18023797号