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 相关文章推荐
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
php URL验证正则表达式
Jul 19 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
功能强大的php分页函数
Jul 20 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
PHP数组访问常用方法解析
Sep 05 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中的正则表达式函数介绍
2012/02/27 PHP
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
python 字符串split的用法分享
2013/03/23 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
python 内置函数汇总详解
2019/09/16 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
Python基于requests库爬取网站信息
2020/03/02 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
nohup的用法
2014/08/10 面试题
学前教育毕业生自荐信
2013/10/29 职场文书
采购主管工作职责
2013/12/12 职场文书
军训生自我鉴定范文
2013/12/27 职场文书
化学实验员岗位职责
2013/12/28 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
关于运动会的广播稿
2014/09/22 职场文书