php拆分中文字符串的多个方法

发布时间:2019-11-07编辑:脚本学堂
php怎么拆分中文字符串呢,拆分普通的英文字符串比较简单,如何正确拆分中文字符串,这里分享几个例子,充分考虑网页编码的问题,实现中文字符的拆分。

代码(拆分中文字符串):
<?php
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="中国站长天空www.jb200.com";
$arr1=str_split_utf8($string);
echo join("%",$arr1);
?>

php逐字拆分字符串的二种方法

方法一:
 

复制代码 代码示例:
<?php
$str="脚本学堂:http://www.jb200.com";
function mbstringtoarray($str,$charset) {
    $strlen=mb_strlen($str);
    while($strlen){
        $array[]=mb_substr($str,0,1,$charset);
        $str=mb_substr($str,1,$strlen,$charset);
        $strlen=mb_strlen($str);
    }
    return $array;
}
$arr=mbstringtoarray($str,"gb2312");
?>

注意:
1、$charset变量为网页编码,如"gb2312"或"utf-8";
2、使用方法一要求服务器必须开启mbstring.dll扩展,否则代码执行错误,所以对于使用虚拟主机的朋友,可以考虑使用第二种方法。

方法二:
 

复制代码 代码示例:
<?php
function str_to_arr($str){
 $l=strlen($str);
 for($i=0;$i<$l;$i++){
  $arr[]=ord($str[$i])>127?$str[$i].$str[++$i]:$str[$i];
 }
 return $arr;
}
$arr=str_to_arr($str);
?>