PHP 对中文字符窜分割
下面是百度知道里一个网友的问题: PHP - 对字符串操作
我有一个由英文字母、数字、中文字符组成的字符串
我想要往这个字符串的每两个字符中间加入一个百分号“%”,例如:我爱PHP编程
变成:
我%爱%P%H%P%编%程
如果直接用PHP的函数,str_split, 来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。但是我们可以建立新的函数先把支付转成ASCII 值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用PHP函数,join,在字符间插入百分号。具体代码如下:
<?phpfunction str_split_utf8($str) {$split=1;$array = array();for ( $i=0; $i < strlen( $str ); ){$value = ord($str[$i]);if($value > 127){if($value >= 192 && $value <= 223)$split=2;elseif($value >= 224 && $value <= 239)$split=3;elseif($value >= 240 && $value <= 247)$split=4;}else{$split=1;}$key = NULL;for ( $j = 0; $j < $split; $j++, $i++ ) {$key .= $str[$i];}array_push( $array, $key );}return $array;}$string ="我爱PHP编程";$arr1 = str_split_utf8($string);echo join("%", $arr1);?>



0 条评论:
发表评论
指向此帖子的链接: