Yii2汉字转拼音类的实例代码


Posted in PHP onApril 18, 2017

类核心代码:

<?php
namespace mobile\models;
use Yii;
use yii\base\Model;
/**
 * 汉字转拼音
 * @property integer 
 */
class SpellModel extends Model
{
  /** 
   * 拼音字符转换图 
   * @var array 
   */ 
  private static $_aMaps = array( 
    'a'=>-20319,'ai'=>-20317,'an'=>-20304,'ang'=>-20295,'ao'=>-20292, 
    'ba'=>-20283,'bai'=>-20265,'ban'=>-20257,'bang'=>-20242,'bao'=>-20230,'bei'=>-20051,'ben'=>-20036,'beng'=>-20032,'bi'=>-20026,'bian'=>-20002,'biao'=>-19990,'bie'=>-19986,'bin'=>-19982,'bing'=>-19976,'bo'=>-19805,'bu'=>-19784, 
    'ca'=>-19775,'cai'=>-19774,'can'=>-19763,'cang'=>-19756,'cao'=>-19751,'ce'=>-19746,'ceng'=>-19741,'cha'=>-19739,'chai'=>-19728,'chan'=>-19725,'chang'=>-19715,'chao'=>-19540,'che'=>-19531,'chen'=>-19525,'cheng'=>-19515,'chi'=>-19500,'chong'=>-19484,'chou'=>-19479,'chu'=>-19467,'chuai'=>-19289,'chuan'=>-19288,'chuang'=>-19281,'chui'=>-19275,'chun'=>-19270,'chuo'=>-19263,'ci'=>-19261,'cong'=>-19249,'cou'=>-19243,'cu'=>-19242,'cuan'=>-19238,'cui'=>-19235,'cun'=>-19227,'cuo'=>-19224, 
    'da'=>-19218,'dai'=>-19212,'dan'=>-19038,'dang'=>-19023,'dao'=>-19018,'de'=>-19006,'deng'=>-19003,'di'=>-18996,'dian'=>-18977,'diao'=>-18961,'die'=>-18952,'ding'=>-18783,'diu'=>-18774,'dong'=>-18773,'dou'=>-18763,'du'=>-18756,'duan'=>-18741,'dui'=>-18735,'dun'=>-18731,'duo'=>-18722, 
    'e'=>-18710,'en'=>-18697,'er'=>-18696, 
    'fa'=>-18526,'fan'=>-18518,'fang'=>-18501,'fei'=>-18490,'fen'=>-18478,'feng'=>-18463,'fo'=>-18448,'fou'=>-18447,'fu'=>-18446, 
    'ga'=>-18239,'gai'=>-18237,'gan'=>-18231,'gang'=>-18220,'gao'=>-18211,'ge'=>-18201,'gei'=>-18184,'gen'=>-18183,'geng'=>-18181,'gong'=>-18012,'gou'=>-17997,'gu'=>-17988,'gua'=>-17970,'guai'=>-17964,'guan'=>-17961,'guang'=>-17950,'gui'=>-17947,'gun'=>-17931,'guo'=>-17928, 
    'ha'=>-17922,'hai'=>-17759,'han'=>-17752,'hang'=>-17733,'hao'=>-17730,'he'=>-17721,'hei'=>-17703,'hen'=>-17701,'heng'=>-17697,'hong'=>-17692,'hou'=>-17683,'hu'=>-17676,'hua'=>-17496,'huai'=>-17487,'huan'=>-17482,'huang'=>-17468,'hui'=>-17454,'hun'=>-17433,'huo'=>-17427, 
    'ji'=>-17417,'jia'=>-17202,'jian'=>-17185,'jiang'=>-16983,'jiao'=>-16970,'jie'=>-16942,'jin'=>-16915,'jing'=>-16733,'jiong'=>-16708,'jiu'=>-16706,'ju'=>-16689,'juan'=>-16664,'jue'=>-16657,'jun'=>-16647, 
    'ka'=>-16474,'kai'=>-16470,'kan'=>-16465,'kang'=>-16459,'kao'=>-16452,'ke'=>-16448,'ken'=>-16433,'keng'=>-16429,'kong'=>-16427,'kou'=>-16423,'ku'=>-16419,'kua'=>-16412,'kuai'=>-16407,'kuan'=>-16403,'kuang'=>-16401,'kui'=>-16393,'kun'=>-16220,'kuo'=>-16216, 
    'la'=>-16212,'lai'=>-16205,'lan'=>-16202,'lang'=>-16187,'lao'=>-16180,'le'=>-16171,'lei'=>-16169,'leng'=>-16158,'li'=>-16155,'lia'=>-15959,'lian'=>-15958,'liang'=>-15944,'liao'=>-15933,'lie'=>-15920,'lin'=>-15915,'ling'=>-15903,'liu'=>-15889,'long'=>-15878,'lou'=>-15707,'lu'=>-15701,'lv'=>-15681,'luan'=>-15667,'lue'=>-15661,'lun'=>-15659,'luo'=>-15652, 
    'ma'=>-15640,'mai'=>-15631,'man'=>-15625,'mang'=>-15454,'mao'=>-15448,'me'=>-15436,'mei'=>-15435,'men'=>-15419,'meng'=>-15416,'mi'=>-15408,'mian'=>-15394,'miao'=>-15385,'mie'=>-15377,'min'=>-15375,'ming'=>-15369,'miu'=>-15363,'mo'=>-15362,'mou'=>-15183,'mu'=>-15180, 
    'na'=>-15165,'nai'=>-15158,'nan'=>-15153,'nang'=>-15150,'nao'=>-15149,'ne'=>-15144,'nei'=>-15143,'nen'=>-15141,'neng'=>-15140,'ni'=>-15139,'nian'=>-15128,'niang'=>-15121,'niao'=>-15119,'nie'=>-15117,'nin'=>-15110,'ning'=>-15109,'niu'=>-14941,'nong'=>-14937,'nu'=>-14933,'nv'=>-14930,'nuan'=>-14929,'nue'=>-14928,'nuo'=>-14926, 
    'o'=>-14922,'ou'=>-14921, 
    'pa'=>-14914,'pai'=>-14908,'pan'=>-14902,'pang'=>-14894,'pao'=>-14889,'pei'=>-14882,'pen'=>-14873,'peng'=>-14871,'pi'=>-14857,'pian'=>-14678,'piao'=>-14674,'pie'=>-14670,'pin'=>-14668,'ping'=>-14663,'po'=>-14654,'pu'=>-14645, 
    'qi'=>-14630,'qia'=>-14594,'qian'=>-14429,'qiang'=>-14407,'qiao'=>-14399,'qie'=>-14384,'qin'=>-14379,'qing'=>-14368,'qiong'=>-14355,'qiu'=>-14353,'qu'=>-14345,'quan'=>-14170,'que'=>-14159,'qun'=>-14151, 
    'ran'=>-14149,'rang'=>-14145,'rao'=>-14140,'re'=>-14137,'ren'=>-14135,'reng'=>-14125,'ri'=>-14123,'rong'=>-14122,'rou'=>-14112,'ru'=>-14109,'ruan'=>-14099,'rui'=>-14097,'run'=>-14094,'ruo'=>-14092, 
    'sa'=>-14090,'sai'=>-14087,'san'=>-14083,'sang'=>-13917,'sao'=>-13914,'se'=>-13910,'sen'=>-13907,'seng'=>-13906,'sha'=>-13905,'shai'=>-13896,'shan'=>-13894,'shang'=>-13878,'shao'=>-13870,'she'=>-13859,'shen'=>-13847,'sheng'=>-13831,'shi'=>-13658,'shou'=>-13611,'shu'=>-13601,'shua'=>-13406,'shuai'=>-13404,'shuan'=>-13400,'shuang'=>-13398,'shui'=>-13395,'shun'=>-13391,'shuo'=>-13387,'si'=>-13383,'song'=>-13367,'sou'=>-13359,'su'=>-13356,'suan'=>-13343,'sui'=>-13340,'sun'=>-13329,'suo'=>-13326, 
    'ta'=>-13318,'tai'=>-13147,'tan'=>-13138,'tang'=>-13120,'tao'=>-13107,'te'=>-13096,'teng'=>-13095,'ti'=>-13091,'tian'=>-13076,'tiao'=>-13068,'tie'=>-13063,'ting'=>-13060,'tong'=>-12888,'tou'=>-12875,'tu'=>-12871,'tuan'=>-12860,'tui'=>-12858,'tun'=>-12852,'tuo'=>-12849, 
    'wa'=>-12838,'wai'=>-12831,'wan'=>-12829,'wang'=>-12812,'wei'=>-12802,'wen'=>-12607,'weng'=>-12597,'wo'=>-12594,'wu'=>-12585, 
    'xi'=>-12556,'xia'=>-12359,'xian'=>-12346,'xiang'=>-12320,'xiao'=>-12300,'xie'=>-12120,'xin'=>-12099,'xing'=>-12089,'xiong'=>-12074,'xiu'=>-12067,'xu'=>-12058,'xuan'=>-12039,'xue'=>-11867,'xun'=>-11861, 
    'ya'=>-11847,'yan'=>-11831,'yang'=>-11798,'yao'=>-11781,'ye'=>-11604,'yi'=>-11589,'yin'=>-11536,'ying'=>-11358,'yo'=>-11340,'yong'=>-11339,'you'=>-11324,'yu'=>-11303,'yuan'=>-11097,'yue'=>-11077,'yun'=>-11067, 
    'za'=>-11055,'zai'=>-11052,'zan'=>-11045,'zang'=>-11041,'zao'=>-11038,'ze'=>-11024,'zei'=>-11020,'zen'=>-11019,'zeng'=>-11018,'zha'=>-11014,'zhai'=>-10838,'zhan'=>-10832,'zhang'=>-10815,'zhao'=>-10800,'zhe'=>-10790,'zhen'=>-10780,'zheng'=>-10764,'zhi'=>-10587,'zhong'=>-10544,'zhou'=>-10533,'zhu'=>-10519,'zhua'=>-10331,'zhuai'=>-10329,'zhuan'=>-10328,'zhuang'=>-10322,'zhui'=>-10315,'zhun'=>-10309,'zhuo'=>-10307,'zi'=>-10296,'zong'=>-10281,'zou'=>-10274,'zu'=>-10270,'zuan'=>-10262,'zui'=>-10260,'zun'=>-10256,'zuo'=>-10254 
  ); 
  /** 
   * 将中文编码成拼音 
   * @param string $utf8Data utf8字符集数据 
   * @param string $sRetFormat 返回格式 [head:首字母|all:全拼音] 
   * @return string 
   */ 
  public static function encode($utf8Data, $sRetFormat='head'){ 
    $sGBK = iconv('UTF-8', 'GBK', $utf8Data); 
    $aBuf = array(); 
    for ($i=0, $iLoop=strlen($sGBK); $i<$iLoop; $i++) { 
      $iChr = ord($sGBK{$i}); 
      if ($iChr>160) 
        $iChr = ($iChr<<8) + ord($sGBK{++$i}) - 65536; 
      if ('head' === $sRetFormat) 
        $aBuf[] = substr(self::zh2py($iChr),0,1); 
      else 
        $aBuf[] = self::zh2py($iChr); 
    } 
    if ('head' === $sRetFormat) 
      return implode('', $aBuf); 
    else 
      return implode(' ', $aBuf); 
  } 
  /** 
   * 中文转换到拼音(每次处理一个字符) 
   * @param number $iWORD 待处理字符双字节 
   * @return string 拼音 
   */ 
  private static function zh2py($iWORD) { 
    if($iWORD>0 && $iWORD<160 ) { 
      return chr($iWORD); 
    } elseif ($iWORD<-20319||$iWORD>-10247) { 
      return ''; 
    } else { 
      foreach (self::$_aMaps as $py => $code) { 
        if($code > $iWORD) break; 
        $result = $py; 
      } 
      return $result; 
    } 
  } 
}

使用示例:

// 选择城市
  public function actionCity()
  {
    $parameters = '
      "requestType": 0
    ';
    $PortData = Interfaces::Connections('city/addresslist', true, Interfaces::Montage($parameters));
    $PortData = json_decode($PortData, true);
    // 热门城市
    $model['topList'] = isset($PortData['topList']) ? $PortData['topList']:[];
    // 所有城市
    $dataList = isset($PortData['topList']) ? $PortData['dataList']:[];
    $model['cityList'] = [];
    if(!empty($dataList)){
      foreach ($dataList as $key => $value) {
        $spell = mobile\models\SpellModel::encode($value['name']);
        $spell = mb_substr($spell , 0 , 1); 
        if(!empty($spell)) $model['cityList'][$spell][] = $value;
      }
      ksort($model['cityList']); //排序
    }
    return $this->render('city', [
      'model' => $model,
    ]);
  }

效果图如下:

Yii2汉字转拼音类的实例代码

以上所述是小编给大家介绍的Yii2汉字转拼音类的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
php PDO中文乱码解决办法
Jul 20 PHP
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
php whois查询API制作方法
Jun 23 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
php给每个段落添加空格的方法
Mar 20 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
php引用传递
Apr 01 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 #PHP
ZendFramework2连接数据库操作实例
Apr 18 #PHP
PHP实现的数独求解问题示例
Apr 18 #PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 #PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 #PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 #PHP
PHP递归删除多维数组中的某个值
Apr 17 #PHP
You might like
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php的4种常见运行方式
2015/03/20 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
PHP7 其他修改
2021/03/09 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
js获取Get值的方法
2016/09/29 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
python 字符串常用方法汇总详解
2019/09/16 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
python字典key不能是可以是啥类型
2020/08/04 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
2014年高三毕业生自我评价
2014/01/11 职场文书
网吧消防安全制度
2014/01/28 职场文书
投标服务承诺书
2014/05/28 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript