wtuyss 发表于 2017-4-8 11:25:11

使用PHP拆分中文字符串的方法(收藏) 小节

  案例假设:
  假设我有一个由英文字母、数字、中文字符组成的字符串,我想要往这个字符串的每两个字符中间加入一个百分号“%”.
  例如:
  把“Hurry的博客blog.csdn.net/jpr1990”变成“H%r%r%y%的%博%客%b%l%o%g%.%c%s%d%n%.%n%e%t%/%j%p%r%1%9%9%0”
那么我们怎么来实现呢?
  当然我们首先想到用"str_split"函数,但如果直接用PHP函数“str_split”来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。但是我们可以建立新的函数先把字符转成ASCII值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用PHP函数“join”在字符间插入百分号。具体代码如下:
function 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="Hurry的博客blog.csdn.net/jpr1990";$arr1=str_split_utf8($string);echo join("%",$arr1);
  附上PHP拆分普通字符串的方法:
$arr=explode("<br>",$str);print_r($arr);echo $arr."-".$arr;
--Hurry
页: [1]
查看完整版本: 使用PHP拆分中文字符串的方法(收藏) 小节