码迷,mamicode.com
首页 > Web开发 > 详细

php拆分中文

时间:2015-05-02 13:41:28      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

今天学弟写了个Lingo程序让我检查错误,发现其中出现了错误。原因是标点全部用了中文的。
于是我就想用php写个脚本替换掉里面的中文字符。
但是结果一直出错
最后发现原因是 
如果直接用PHP函数“str_split”来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。但是我们可以建立新的函数先把字符转成ASCII值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,

<?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.zzsky.cn";
$arr1=str_split_utf8($string);
echo join("%",$arr1);
?>

 

php拆分中文

标签:

原文地址:http://www.cnblogs.com/ccode/p/4471829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!