• 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类型.

     

  • 相关阅读:
    Android 图片处理之 Fresco
    Android数据列表展示之 RecylerView
    新浪微博第二天
    Android之MVP设计模式
    android中fragment与activity之间通信原理以及例子
    SpannableString设置文本背景色
    新浪微博应用第一天
    python D11 迭代及闭包
    python D10 函数进阶
    python D9 初识函数
  • 原文地址:https://www.cnblogs.com/cleverstone/p/9178912.html
Copyright © 2020-2023  润新知