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 相关文章推荐
PHP 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
PHP实现定时生成HTML网站首页实例代码
Nov 20 PHP
php max_execution_time执行时间问题
Jul 17 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
php图片上传类 附调用方法
May 15 PHP
PHP命名空间namespace的定义方法详解
Mar 29 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
php workerman定时任务的实现代码
Dec 23 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
php中array_fill函数的实例用法
Mar 02 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
PHP入门速成(2)
2006/10/09 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python实现UDP协议下的文件传输
2020/03/20 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
宣传普通话标语
2014/06/27 职场文书
商务代表岗位职责
2015/02/15 职场文书
死亡诗社观后感
2015/06/05 职场文书
现实表现证明材料
2015/06/19 职场文书
Django框架之路由用法
2022/06/10 Python