字符串切分 utf-8(支持汉语、日文、韩文等,高效、)
Libérer: 2016-07-25 09:08:02
original
1284 Les gens l'ont consulté
因为mb_substr、mb_strlen太过低效,故而采用了此段代码。
非原创,主要原理是根据UTF-8的编码特点 0xxxxxxx 110xxxxx 10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 来获取字符边界,从而确定一个字所占字节数,并处理成数组。
方便对字符操作比较频繁的用户,此函数效率比mb_substr高效10倍,我曾经写过一个「N万违禁词替换类」,在开发此类过程中,详细对比过这两者的效率,此函数明显胜出。
- function str_split_utf8($str) {
- // place each character of the string into and array
- $split = 1;
- $array = array(); $len = strlen($str);
- for ( $i = 0; $i $value = ord($str[$i]);
- if($value > 0x7F){
- if($value >= 0xC0 && $value $split = 2;
- elseif($value >= 0xE0 && $value $split = 3;
- elseif($value >= 0xF0 && $value $split = 4;
- elseif($value >= 0xF8 && $value $split = 5;
- elseif($value >= 0xFC)
- $split = 6;
- } else {
- $split = 1;
- }
- $key = '';
- for ( $j = 0; $j $key .= $str[$i];
- }
- $array[] = $key;
- }
- return $array;
- }
复制代码
|
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
-
2024-09-14 12:05:17
-
2024-09-14 12:00:16
-
2024-09-14 10:34:37
-
2024-09-14 10:34:11
-
2024-09-14 10:34:03
-
2024-09-14 10:33:46
-
2024-09-14 10:33:39
-
2024-09-14 10:33:02
-
2024-09-14 10:32:51
-
2024-09-14 10:32:40