从纯字母字符串中分析拼音的函数分享

写了一个给定一个字符串时分析字符串内拼音的函数,这在分析域名是双拼还是三拼四拼时非常有用的。贴出代码:

include('data.php');
function isPinYin($str){
 global $data;
    $str = str_replace( strstr($str, '.'),'',$str);                   
    if(! preg_match('/^[a-zA-Z]+$/', $str) ){
           return 'no';
    }
 
 $pinYinCount = $runCount = 0;
 while (strlen($str) > 0) { 
  $runCount ++ ;  
  foreach ($data[ $str{0} ] as $key => $value) {   
   $curPinYinLen = strlen($value);  
   if( $value == substr($str,0, $curPinYinLen) ){     
    $pinYinCount++;
    $pinyin .= $value . ' ';     
    $str = substr($str,$curPinYinLen );
    break;
   }
  }
  if($pinYinCount < $runCount){
   $str = '';
   $pinYinCount = 0;
  }
 }
 return $pinyin;
}
$domain = 'pinyin.com';
echo isPinYin($domain); // pin yin

$data是一个包括所有拼音组合的数组,在这个数组里做了优化,才让编码实现起来相对简单了。有需要的同学可以留言索取,代码太长就不贴出来了。

 

评论列表

  • 礼记
    2011-05-11 23:08   第1楼
    这个倒还没有遇到过有这样的需求
  • 玉壶
    2011-05-15 21:56   第2楼
    那个数据文件是不是作了优化啊?不然不会这么轻松的实现吧?
  • aku
    2011-06-01 23:59   第3楼
    需要一份,谢谢,请邮件一份
  • 蓝色夏威夷
    2011-06-14 10:30   第4楼
    回复“aku” , 文件已发送,请查收!
  • 绿萝
    2011-06-30 08:24   第5楼
    好像还用不上的
  • 曙光
    2011-07-01 18:39   第6楼
    呵呵呵呵 还不错阿
  • 阿飞
    2011-09-13 13:12   第7楼
    LZ,请PM一份,谢谢,伊妹儿!
  • 蓝色夏威夷
    2011-09-17 22:25   第8楼
    回复“阿飞” , 文件已发送,请查收!
  • 芒果
    2011-09-27 21:10   第9楼
    求一份 data 数据,非常感谢。
  • 蓝色夏威夷
    2011-09-28 12:42   第10楼
    回复"芒果",文件已发送。
  • 小龙
    2011-10-23 02:59   第11楼
    求一份 data 数据,非常感谢!
  • Ten‘s
    2011-10-27 13:10   第12楼
    来一份
  • 蓝色夏威夷
    2011-11-03 22:17   第13楼
    回复"小龙",文件已发送。
  • 蓝色夏威夷
    2011-11-03 22:17   第14楼
    回复"Ten‘s",文件已发送。
  • 土豆
    2011-11-13 22:45   第15楼
    求一份数据,感谢啊
  • 蓝色夏威夷
    2011-11-16 11:28   第16楼
    回复"土豆",文件已发送。
  • 小小虫
    2011-11-21 16:51   第17楼
    请给一份,谢谢
  • 聪仔
    2011-11-22 21:13   第18楼
    也发给我一份。谢谢。。。。。。。 如果有 ASP 的话就好了。。在写个小程序。
  • 水滴站长
    2011-12-29 14:33   第19楼
    发我一份吧。楼主的代码是否只适合全拼的情况
  • ms
    2012-01-19 10:57   第20楼
    请发一份,谢谢。
  • 蓝色夏威夷
    2012-02-02 10:04   第21楼
    回复"ms" ,文件已发送。
  • 蓝色夏威夷
    2012-02-02 10:04   第22楼
    回复"小小虫" ,文件已发送。
  • 蓝色夏威
    2012-02-02 10:05   第23楼
    回复"聪仔" ,文件已发送。
  • 蓝色夏威
    2012-02-02 10:05   第24楼
    回复"水滴站长" ,文件已发送。
  • yumijie
    2012-02-08 11:47   第25楼
    你好 能否发一份vdata.php文件给我啊,谢谢

发表评论

(必填)
(便于交流,可选)
  (支持Ctrl+Enter快捷回复)