将中英文混排将每一个字分解开
时间:2011-12-17
来源:互联网
例如:字符串是 "中zhong华hua人民共和国"分解为
array('中','z','h','o','n','g','华','h','u','a','人','民','共','和','国')
考虑两种编码utf8和gbk
array('中','z','h','o','n','g','华','h','u','a','人','民','共','和','国')
考虑两种编码utf8和gbk
作者: Jack_Hu 发布时间: 2011-12-17
已得解
PHP code
PHP code
function string2Array($sText) { $aArray = array(); $iLen=strlen($sText); for($i;$i<$iLen;$i++) { $c=ord(substr($sText,0,1)); if($c >252) {$p = 5;} elseif($c > 248) {$p = 4;} elseif($c > 240) {$p = 3;} elseif($c > 224) {$p = 2;} elseif($c > 192) {$p = 1;} else {$p = 0;} $sKey=substr($sText,0,$p+1); if($sKey===false) {break;} $aArray[]=$sKey; $sText=substr($sText,$p+1); } return $aArray; }
作者: Jack_Hu 发布时间: 2011-12-17
PHP code
GBK 环境测试例PHP code
/** * 按指定宽度切割字符串 * 与 str_split 相同,但是是宽字符安全的 **/ function str_chunk($s, $w=1, $charset='') { if(empty($charset)) { $t = iconv('utf-8', 'gbk', iconv('gbk', 'utf-8', $s)); $charset = $t == $s ? 'gbk' : 'utf-8'; } if($charset == 'utf-8') preg_match_all('/./su', $s, $r); else preg_match_all('/[\x80-\xff]?./s', $s, $r); if($w <= 1) return $r[0]; $r = array_chunk($r[0], $w); return array_map(create_function('$v', 'return join("", $v);'), $r); }
GBK 环境测试例PHP code
$s = "中zhong华hua人民共和国"; //GBK编码 print_r( str_chunk($s, 2) ); $s = iconv('gbk', 'utf-8', "中zhong华hua人民共和国"); //转换成UTF-8编码 print_r( str_chunk($s) );PHP code
Array ( [0] => 中z [1] => ho [2] => ng [3] => 华h [4] => ua [5] => 人民 [6] => 共和 [7] => 国 ) Array ( [0] => 涓� [1] => z [2] => h [3] => o [4] => n [5] => g [6] => 鍗� [7] => h [8] => u [9] => a [10] => 浜� [11] => 姘� [12] => 鍏� [13] => 鍜� [14] => 鍥� )
作者: xuzuning 发布时间: 2011-12-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28