zoukankan      html  css  js  c++  java
  • PHP 多字节处理函数 mb_strlen

    一、前言

    个人认为,PHP是世界上最好的语言。 

    二、介绍

    查看yii2底层源码, 发现 mb_strlen($str, '8bit') , 此函数的不是PHP的核心函数, 所以需要开启对应的扩展. 函数第一个参数是string类型, 第二个参数是个编码字符集, 比如: utf-8, gbk, unicode 等. '8bit' 是属于什么字符集?  其实8bit是php独有解析的, 8bit并不是一个字符集, 只是php引擎可以解析它而已. 顾名思义, 一个字节等于八个位, 1byte=8bit.

    下面是几个例子:

    例一:

    echo strlen('测试');
    //结果是  6
    echo mb_strlen('测试');
    //结果是  2

    从结果来看, strlen里的多字节字符串一个汉字等于3个字节,而mb_strlen中的一个汉字是1个字节.  从而可以看出mb_strlen的默认编码字符集是utf-8

    例二:

     1 echo strlen('测试');
     2 
     3 //结果是 6
     4 
     5 echo mb_strlen('测试');
     6 
     7 //结果是 2
     8 
     9 echo mb_strlen('测试', '8bit');
    10 
    11 //结果是  6

    从结果来看例子二, mb_strlen('测试', '8bit') == strlen('测试'), 可是为啥要用mb_strlen() 而不是用 strlen() 呢?

    查询资料发现, mb_strlen 比 strlen处理多字节字符串的性能更好, 也更加精确. 其次就是返回值的不同了, mb_strlen 返回值是混合类型fix, 就是说有int也有boolean, 而strlen的返回值只是int类型.

     

  • 相关阅读:
    python命名
    类的绑定方法与非绑定方法
    类的封装
    类的多态性
    python中的while循环和for循环
    python的单、双、多分支流程控制
    python中的运算符
    python中的变量
    接口与归一化设计
    类的继承
  • 原文地址:https://www.cnblogs.com/cleverstone/p/9178912.html
Copyright © 2011-2022 走看看