Ejemplo n.º 1
0
 /**
  * 汉字拼音转换程序(支持多音字)
  *
  * @param string $keyword            
  * @return array
  */
 public static function getPinyin($keyword, $type = null)
 {
     // 变量定义
     $hz = PyDict::$hanzi;
     $result = "";
     // 转换成utf-8编码数组
     $utf8_arr = Pinyin::strSplitPhp5Utf8($keyword);
     switch ($type) {
         case 1:
             // 获取每个汉字的首字母
             foreach ($utf8_arr as $char) {
                 if (isset($hz[$char])) {
                     $result .= substr($hz[$char][0], 0, 1);
                 } else {
                     $result .= $char;
                 }
             }
             $result = array($result);
             break;
         case 2:
             // 只获取第一个汉字的首字母,非汉字统一为#
             foreach ($utf8_arr as $char) {
                 if (isset($hz[$char])) {
                     foreach ($hz[$char] as $pinyin) {
                         $result[] = substr($pinyin, 0, 1);
                     }
                 } else {
                     $value = ord($char);
                     if ($value >= 65 && $value <= 89 || $value >= 97 && $value <= 122) {
                         $result = strtolower($char);
                     } else {
                         $result = '#';
                     }
                     $result = array($result);
                 }
                 break;
             }
             break;
         default:
             // 汉字转换成拼音
             foreach ($utf8_arr as $char) {
                 if (isset($hz[$char])) {
                     $result .= $hz[$char][0];
                 } else {
                     $result .= $char;
                 }
             }
             $result = array($result);
             break;
     }
     return $result;
 }