[php] 中文字符串处理,遍历 切割

常用函数记录,PHP 2019-02-20

今天遇到一个中文字符串处理的功能,顺便来记录一下吧,中文字符因为在计算机中占用的字节和普通字符不一样,所以 split,strlen都不能使用了

假如有一个变量
$a = '这是一个测试'
  • 可能我们平时遍历这样处理

    for($i = 0;$i < strlen($a) ;$i ++)
    {
        `echo $a[$i];//中文是不能这样读取的,最后只会输出乱码
    }
    
  • 正确的使用函数的话只能这样(mb 系列)

     for($i = 0;$i < mb_strlen($a) ;$i ++)
    {
        `echo mb_substr($a,$i,1)
    }

还有一种方式就是使用正则切分的方法
  • preg_split() 直接将中文字符切分为数组

     preg_split('/(?<!^)(?!$)/u',$a);  

本文由 小东@xiaodo 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。