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

阅读次数:1513 次  |  发布时间:2019-02-04T00:00:00Z 

类核心代码:


    <?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汉字转拼音类的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

最近发布的代码:

获取php时间戳 PHP 程序  |  7次阅读  | 发布于:2020-08-01T23:05:19Z
php获取tempfile路径 PHP 程序  |  7次阅读  | 发布于:2020-08-01T23:03:16Z
php 1,1,2,3,5,8,13,21,34...求第30位的数是多少? PHP 程序  |  11次阅读  | 发布于:2020-08-01T23:03:00Z
PHP执行shell PHP 程序  |  22次阅读  | 发布于:2020-02-08T16:48:28Z
PHP获取HTTP body内容 PHP 程序  |  53次阅读  | 发布于:2019-12-09T14:35:47Z
php读取目录下的所有文件 PHP 程序  |  59次阅读  | 发布于:2019-11-18T18:50:49Z
php判断是爬虫在访问还是用户浏览器在访问 PHP 程序  |  62次阅读  | 发布于:2019-11-12T19:16:47Z
PHP通过UserAgent识别爬虫 PHP 程序  |  49次阅读  | 发布于:2019-11-12T19:16:03Z
PHP使用curl发起post请求 PHP 程序  |  61次阅读  | 发布于:2019-11-10T21:43:33Z
PHP版HelloWorld PHP 程序  |  47次阅读  | 发布于:2019-10-31T00:14:24Z
实现水仙花数的5个示例 PHP 程序  |  83次阅读  | 发布于:2019-10-29T23:22:58Z
PHP输出所有位数的水仙花 PHP 程序  |  41次阅读  | 发布于:2019-10-28T08:44:36Z
PHP水仙花数实现代码 PHP 程序  |  45次阅读  | 发布于:2019-10-28T08:38:23Z
根据文件后缀判断是否为代码文件 PHP 程序  |  82次阅读  | 发布于:2019-10-20T14:39:03Z
PHP判断访问者是否为手机 PHP 程序  |  78次阅读  | 发布于:2019-10-20T14:37:38Z
PHP判断字符是否以xxx开头 PHP 程序  |  74次阅读  | 发布于:2019-10-10T01:55:24Z
PHP压缩文件 PHP 程序  |  100次阅读  | 发布于:2019-10-10T01:53:17Z
PHP解压文件 PHP 程序  |  43次阅读  | 发布于:2019-10-10T01:51:36Z
PHP生成随机字符串 PHP 程序  |  54次阅读  | 发布于:2019-10-10T01:49:40Z
PHP判断路径是否合法,不能有./ ../等安全隐患 PHP 程序  |  97次阅读  | 发布于:2019-10-10T01:48:56Z
PHP在服务端通过浏览器的User-Agent判断网页的客户端类型 PHP 程序  |  76次阅读  | 发布于:2019-10-10T01:26:15Z
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态 PHP 程序  |  1123次阅读  | 发布于:2019-02-04T00:00:00Z
WordPress的主题编写中获取头部模板和底部模板 PHP 程序  |  1084次阅读  | 发布于:2019-02-04T00:00:00Z
PHP实现批量清空删除指定文件夹所有内容的方法 PHP 程序  |  1041次阅读  | 发布于:2019-02-04T00:00:00Z
PHP面向对象继承用法详解(优化与减少代码重复) PHP 程序  |  989次阅读  | 发布于:2019-02-04T00:00:00Z
玩转虚拟域名◎+ . PHP 程序  |  909次阅读  | 发布于:2019-02-04T00:00:00Z
值得分享的php+ajax实时聊天室 PHP 程序  |  936次阅读  | 发布于:2019-02-04T00:00:00Z
PHP中使用substr()截取字符串出现中文乱码问题该怎么办 PHP 程序  |  933次阅读  | 发布于:2019-02-04T00:00:00Z
模仿OSO的论坛(二) PHP 程序  |  853次阅读  | 发布于:2019-02-04T00:00:00Z
sqlyog 中文乱码问题的设置方法 PHP 程序  |  859次阅读  | 发布于:2019-02-04T00:00:00Z

最多阅读的代码

 PHP分页显示制作详细讲解 PHP 程序  |  2116次阅读
 在Zeus Web Server中安装PHP语言支持 PHP 程序  |  1658次阅读
 再谈PHP中单双引号的区别详解 PHP 程序  |  1617次阅读
 PHP实现简单爬虫的方法 PHP 程序  |  1571次阅读
 php+ajax+json 详解及实例代码 PHP 程序  |  1568次阅读
 桌面中心(一)创建数据库 PHP 程序  |  1543次阅读
 PHP设计模式之工厂模式与单例模式 PHP 程序  |  1541次阅读
 php封装的page分页类完整实例 PHP 程序  |  1540次阅读
 php数组合并array_merge()函数使用注意事项 PHP 程序  |  1533次阅读
 Yii2汉字转拼音类的实例代码 PHP 程序  |  1513次阅读
 使用WAMP搭建PHP本地开发环境 PHP 程序  |  1383次阅读
 redirect_uri参数错误的解决方法(必看) PHP 程序  |  1371次阅读
 thinkPHP5.0框架简单配置作用域的方法 PHP 程序  |  1370次阅读
 php查询及多条件查询 PHP 程序  |  1369次阅读
 Zend Framework分发器用法示例 PHP 程序  |  1342次阅读
 php连接oracle数据库的方法(测试成功) PHP 程序  |  1341次阅读
 PHP实现根据银行卡号判断银行 PHP 程序  |  1340次阅读
 PHP Header用于页面跳转时的几个注意事项 PHP 程序  |  1330次阅读
 PHP 生成的XML以FLASH获取为乱码终极解决 PHP 程序  |  1325次阅读
 php封装一个异常的处理类 PHP 程序  |  1325次阅读
 ThinkPHP3.1新特性之Action参数绑定 PHP 程序  |  1321次阅读
 mantis安装、配置和使用中的问题小结 PHP 程序  |  1321次阅读
 PHP环境搭建最新方法 PHP 程序  |  1314次阅读