欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

将中文字符串分割为数组 解决str_split中文乱码php

首先来介绍str_split()这个函数;

它的作用是将字符串分割为数组;

例如:

1
2
3
4
5
6
7
8
9
10
11
12
$str='abcde';
str_plite($str);
 
打印结果如下:
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
)

看似很好用的样子;但是作为中国程序员;不可避免的要和中文打交道;

这时候再用str_splite就会悲剧的发现乱码了;;;

不要怕;preg_splite可以拯救这个问题;

当然是需要配合正则使用的;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * 将字符串分割为数组    
 * @param  string $str 字符串
 * @return array       分割得到的数组
 */
function mb_str_split($str){
    return preg_split('/(?<!^)(?!$)/u'$str );
}
 
$str='白俊遥博客';
mb_str_split($str);
 
打印结果如下:
Array
(
    [0] => 白
    [1] => 俊
    [2] => 遥
    [3] => 博
    [4] => 客
)

打完;收工;

白俊遥博客

 

白俊遥博客
请先登录后发表评论
  •  
 
  • 最新评论
  • 总共2条评论
白俊遥博客

花无不缺你一个:大神能否解释下这个正则?

2016-11-11 12:11:37 回复

白俊遥博客
  • 云淡风晴 回复 花无不缺你一个:谷歌:反向预搜索
  • 2016-11-11 23:09:02 回复
  •  
白俊遥博客
  • 花无不缺你一个 回复 云淡风晴:还是不明白啊 求指教~(?<!^)是反向否定搜索 加了^是否定啥? (?!$)是正向否定搜索 加了$又变成啥意思了? /u 是utf-8 
  • 2016-11-12 12:03:24 回复
  •  
白俊遥博客
  • 云淡风晴 回复 花无不缺你一个:^和$是定位符;用来描述字符串或单词的边界;分别表示开始和结束;
  • 2016-11-13 10:48:03 回复
  •  
 
 
白俊遥博客

孤城浪子:这个正则没看懂啊

2016-09-13 14:48:48 回复

白俊遥博客
  • 云淡风晴 回复 孤城浪子:这个正则确实略绕;

普通分类: