+ -
当前位置:首页 → 问答吧 → 我写的用某个字符分解汉字字符串的代码

我写的用某个字符分解汉字字符串的代码

时间:2008-04-15

来源:互联网

其实分解字符串为数组的方法,有php自带的函数explode() split() strtok(),但是为什么还自己写一个呢?因为汉字占两个字节,很难保证汉字的某个字节不是要切割的字符,这样就会导致乱码。下面是代码,$separate是要分割的字符变量请各位高手指点。


if($words!=""){
   $pos=strpos($words,$separate);
   $wordlist=array();
   if(false===$pos)
   {
    $wordlist[]=$words;
   }
   else
   {
    $spos=0;
    $spos2=0;
    while(false!==$pos=strpos($words,$separate,$spos2))
    {
     $chnum=0;
     for($m=$pos-1;$m>=$spos;$m--)
     {
      if(ord($words[$m])<=127)
      {
       break;
      }
      else
      {
       $chnum++;
      }
     }
     if(0==$chnum%2)
     {
      $wordlist[]=substr($words,$spos,$pos-$spos);
      $spos=$pos+2;
      $spos2=$pos+2;
     }
     else
     {
      $spos2=$pos+2;
     }
    }
    $laststr=substr($words,$spos);
    if(!empty($laststr))
    {
     $wordlist[]=$laststr;
    }
   }
   $num=count($wordlist);
   $titlelist=array();
   for($i=0;$i<$num;$i++)
   {
    $wordlist[$i]=trim($wordlist[$i]);
    if(empty($wordlist[$i]))continue;
    if(!in_array($wordlist[$i],$titlelist))
    {
     $titlelist[]=$wordlist[$i];
    }
   }



[ 本帖最后由 xxz291917 于 2008-4-15 11:39 编辑 ]

作者: xxz291917   发布时间: 2008-04-15

鼓励鼓励。。。

作者: luzhou   发布时间: 2008-04-15

谢谢版主鼓励,像我这种第一次发原创的,虽然技术水平低,但需要鼓励啊。自己顶起。

作者: xxz291917   发布时间: 2008-04-16

呵呵不错,再接再厉再弄个完善的分词算法吧

作者: hiyoyo   发布时间: 2008-04-17

热门下载

更多