PHP实现将汉字转换为拼音及获取词语首字母的方法
发布时间:2021-03-08 03:44:39  所属栏目:PHP教程  来源:网络整理 
            导读:副标题#e# 本篇章节讲解PHP实现将汉字转换为拼音及获取词语首字母的方法。分享给大家供大家参考,具体如下: 最近要开发将汉字转换为拼音和得到首字的功能记录下来哈子:呵呵~ = '5.0') ? array_combine ( $_TDataKey,$_TDataValue ) : $this->_Array_Combi
                
                
                
            | 副标题[/!--empirenews.page--] 本篇章节讲解PHP实现将汉字转换为拼音及获取词语首字母的方法。分享给大家供大家参考,具体如下: 最近要开发将汉字转换为拼音和得到首字的功能记录下来哈子:呵呵~ = '5.0') ? array_combine ( $_TDataKey,$_TDataValue ) : $this->_Array_Combine( $_TDataKey,$_TDataValue );
    arsort ( $data );
    reset ( $data );
    $str = $this->safe_encoding ( $str );
    $_Res = '';
    for($i = 0; $i < strlen ( $str ); $i ++) {
      $_P = ord ( substr ( $str,$i,1 ) );
      if ($_P > 160) {
        $_Q = ord ( substr ( $str,++ $i,1 ) );
        $_P = $_P * 256 + $_Q - 65536;
      }
      $_Res .= $this->_Pinyin ( $_P,$data ).$pix;
    }
    return preg_replace ( "/[^a-z0-9".$pix."]*/",'',$_Res );
  }
  private function _Pinyin($_Num,$_Data) {
    if ($_Num > 0 && $_Num < 160)
      return chr ( $_Num );
    elseif ($_Num < - 20319 || $_Num > - 10247)
      return '';
    else {
      foreach ( $_Data as $k => $v ) {
        if ($v <= $_Num)
          break;
      }
      return $k;
    }
  }
  public function getFirstChar($str=''){
    if( !$str ) return null;
    $fchar=ord($str{0});
    if($fchar>=ord("A") and $fchar<=ord("z") )return strtoupper($str{0});
    $s= $this->safe_encoding($str);
    $asc=ord($s{0})*256+ord($s{1})-65536;
    if($asc>=-20319 and $asc<=-20284)return "A";
    if($asc>=-20283 and $asc<=-19776)return "B";
    if($asc>=-19775 and $asc<=-19219)return "C";
    if($asc>=-19218 and $asc<=-18711)return "D";
    if($asc>=-18710 and $asc<=-18527)return "E";
    if($asc>=-18526 and $asc<=-18240)return "F";
    if($asc>=-18239 and $asc<=-17923)return "G";
    if($asc>=-17922 and $asc<=-17418)return "H";
    if($asc>=-17417 and $asc<=-16475)return "J";
    if($asc>=-16474 and $asc<=-16213)return "K";
    if($asc>=-16212 and $asc<=-15641)return "L";
    if($asc>=-15640 and $asc<=-15166)return "M";
    if($asc>=-15165 and $asc<=-14923)return "N";
    if($asc>=-14922 and $asc<=-14915)return "O";
    if($asc>=-14914 and $asc<=-14631)return "P";
    if($asc>=-14630 and $asc<=-14150)return "Q";
    if($asc>=-14149 and $asc<=-14091)return "R";
    if($asc>=-14090 and $asc<=-13319)return "S";
    if($asc>=-13318 and $asc<=-12839)return "T";
    if($asc>=-12838 and $asc<=-12557)return "W";
    if($asc>=-12556 and $asc<=-11848)return "X";
    if($asc>=-11847 and $asc<=-11056)return "Y";
    if($asc>=-11055 and $asc<=-10247)return "Z";
    return null;
  }
  function safe_encoding($string) {
    $encoding="UTF-8";
    for($i=0;$i (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 

