thinkphp5整合系列之汉字转拼音完美支持多音字

  • 1.进入thinkphp5项目的根目录,用composer 安装扩展
  • 2.接下来需要做的事就是在控制器中引入 /vendor/overtrue/pinyin/src/Pinyin.php 文件里面的Pinyn这个类

项目需求,需要将汉字转换为拼音,然后按拼音排序.网上找了许多的解决方案,但并不能很好地支持多音字,例如重庆转换之后变成的zhong qing,导致排序异常.
后来费了一番功夫终于在github( https://github.com/overtrue/pinyin)上面找到了完美的解决方案,下面记录一下这次的解决过程!

1.进入thinkphp5项目的根目录,用composer 安装扩展

$ composer require "overtrue/pinyin:~4.0"

安装完毕之后,可以看到verdor目录下面多了一个overtrue目录,目录里面的文件就是我们所需的扩展.

2.接下来需要做的事就是在控制器中引入 /vendor/overtrue/pinyin/src/Pinyin.php 文件里面的Pinyn这个类

public function pinyin(){vendor('overtrue.pinyin.src.Pinyin');$pinyin = new \Overtrue\Pinyin\Pinyin();echo '<br/>';echo '<span style="font-weight: bold;">一、拼音数组</span>';echo '<br/>';echo '1.带着希望去旅行,比到达终点更美好';$str = $pinyin->convert('带着希望去旅行,比到达终点更美好');// ["dai", "zhe", "xi", "wang", "qu", "lyu", "xing", "bi", "dao", "da", "zhong", "dian", "geng", "mei", "hao"]dump($str);echo '2.带着希望去旅行,比到达终点更美好';echo '带声调转化:带着希望去旅行,比到达终点更美好';$str = $pinyin->convert('带着希望去旅行,比到达终点更美好', PINYIN_TONE);// ["dài","zhe","xī","wàng","qù","lǚ","xíng","bǐ","dào","dá","zhōng","diǎn","gèng","měi","hǎo"]dump($str);echo '3.带着希望去旅行,比到达终点更美好';$str = $pinyin->convert('带着希望去旅行,比到达终点更美好', PINYIN_ASCII_TONE);//["dai4","zhe","xi1","wang4","qu4","lyu3","xing2","bi3","dao4","da2","zhong1","dian3","geng4","mei3","hao3"]dump($str);echo '<br/>';echo '<span style="font-weight: bold;">二、生成用于链接的拼音字符串</span>';echo '<br/>';echo '1.带着希望去旅行';$str = $pinyin->permalink('带着希望去旅行'); // dai-zhe-xi-wang-qu-lyu-xingdump($str);echo '2.带着希望去旅行';$str = $pinyin->permalink('带着希望去旅行', '.'); // dai.zhe.xi.wang.qu.lyu.xingdump($str);echo '<br/>';echo '<span style="font-weight: bold;">三、获取首字符字符串</span>';echo '<br/>';echo '1.带着希望去旅行';$str = $pinyin->abbr('带着希望去旅行'); // dzxwqlxdump($str);echo '2.带着希望去旅行';$str = $pinyin->abbr('带着希望去旅行', '-'); // d-z-x-w-q-l-xdump($str);echo '3.你好2018!';$str = $pinyin->abbr('你好2018!', PINYIN_KEEP_NUMBER); // nh2018dump($str);echo '4.Happy New Year! 2018!';$str = $pinyin->abbr('Happy New Year! 2018!', PINYIN_KEEP_ENGLISH); // HNY2018dump($str);echo '<br/>';echo '<span style="font-weight: bold;">四、翻译整段文字为拼音,将会保留中文字符:,。 ! ? : “ ” ‘ ’ 并替换为对应的英文符号。</span>';echo '<br/>';echo '1.带着希望去旅行,比到达终点更美好!';$str = $pinyin->sentence('带着希望去旅行,比到达终点更美好!');// dai zhe xi wang qu lyu xing, bi dao da zhong dian geng mei hao!dump($str);echo '2.带着希望去旅行,比到达终点更美好!';$str = $pinyin->sentence('带着希望去旅行,比到达终点更美好!', PINYIN_TONE);// dài zhe xī wàng qù lǚ xíng, bǐ dào dá zhōng diǎn gèng měi hǎo!dump($str);echo '<br/>';echo '<span style="font-weight: bold;">五、翻译姓名:姓名的姓的读音有些与普通字不一样,比如 ‘单’ 常见的音为 dan,而作为姓的时候读 shan。</span>';echo '<br/>';echo '1.单某某';$str = $pinyin->name('单某某'); // ['shan', 'mou', 'mou']dump($str);echo '2.单某某';$str = $pinyin->name('单某某', PINYIN_TONE); // ["shàn","mǒu","mǒu"]dump($str);}

获取项目实例源码,欢迎访问获 https://github.com/hillwooda/study

thinkphp5整合系列之汉字转拼音完美支持多音字相关推荐

  1. android 汉字转字节,android实现汉字转拼音功能 带多音字识别

    android 汉字转拼音带多音字识别功能,供大家参考,具体内容如下 问题来源 在做地名按首字母排序的时候出现了这样一个bug.长沙会被翻译拼音成zhangsha,重庆会被翻译拼音成zhong qin ...

  2. 支持生僻字且自动识别utf-8编码的php汉字转拼音类,PHP汉字转拼音类(支持生僻字且自动识别utf-8编码)...

    这篇文章主要介绍了PHP汉字转拼音类(支持生僻字且自动识别utf-8编码),非常实用!需要的朋友可以参考下. 拼音类文件py_class.php源码如下: class py_class{ functi ...

  3. 中文汉字注音,汉字转拼音,支持图片识别文字,支持结果转图下载,附上小程序核心源码

    "文字注音"小程序在微信.字节跳动.支付宝.QQ等小程序平台同步上线,微信.头条.抖音.支付宝.QQ中搜索"文字注音"即可获得. 一.功能 汉字转拼音,支持图片 ...

  4. java 判断汉字音调_JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin

    JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin 使用JPinyin,可以实现汉字转换为拼音,并自动识别常用多音字,还支持简体转换为繁体,检查是否为简体,是否为繁体,是否为中文字符等功能 ...

  5. 汉字字词转拼音接口(支持多音字)

    汉字字词转拼音接口(支持多音字) 用php写的一个在线汉字字词转拼音API,支持90%+的多音字词,可选纯字母或带音调. 参数: wd:待转汉字或词语或句子(不建议句子) s:s=1 带音调 s=0纯 ...

  6. sql文字转换全拼_SQL汉字转拼音函数-支持首字母、全拼

    作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 select dbo.procGetPY ('中國') Create FUNCTION dbo.procGetPY ( @str ...

  7. java中文转拼音 多音字_java使用jpinyin汉语转拼音(支持多音字)

    importcom.github.stuxuhai.jpinyin.ChineseHelper;importcom.github.stuxuhai.jpinyin.PinyinFormat;impor ...

  8. java汉字转拼音区别多音字_java中文转拼音,支持多音字词组,不支持音标

    官方的pinyin4j虽然强大,能够支持音标转换,但硬伤在于不支持词组.就此特地将pinyin4j的词库提取出来,研究了下,发现多音字有2000多,去掉音标就1000多,常用字也就500左右.然后估摸 ...

  9. c#版汉字拼音大全,支持多音字

    using System;    using System.Collections.Generic;    using System.Linq;    using System.Text;      ...

最新文章

  1. Storybord切换
  2. 模板编译template的背后,究竟发生了什么事?带你了解template的纸短情长
  3. iOS UIWebView加载网页、文件、HTML
  4. inner join 与 left join 、right join之间的区别
  5. Leecode刷题热题HOT100(13)——罗马数字转整数
  6. 将Maven集成到idea中并创建第一个Maven项目
  7. MySQL Replicaction Error 一例
  8. java string返回_老生常谈Java String字符串(必看篇)
  9. matlab如何计算方差分析,matlab-方差分析.ppt
  10. 2015中考计算机考试时间,2015中考时间安排
  11. opencv获取设备ID和名称
  12. 性能测试工具—LoadRunner
  13. 12道Java高级面试题:java时间差计算
  14. 计算机和遥感哪个专业好啊,遥感科学与技术专业毕业是干什么的
  15. HBase的Nonce实现分析
  16. 已解决:出现了自己签名的证书。 错误: 证书通用名 “www.doctorcom.com” 与所要求的主机名 “raw.githubusercontent.com” 不符。
  17. 仿花瓣网html模板,仿花瓣网的自动悬浮导航效果 jquery
  18. 天津大学新校区计算机学院,天津大学新校区规划最终方案月底出炉地铁将连接新老校区...
  19. arduino LED灯控制基础篇
  20. 基于大数据的高校生源可视化分析系统

热门文章

  1. 关于中文乱码问题的一些解决方案和经验
  2. 2022工作中遇到的问题四
  3. Mongodb3.4升级3.6
  4. 左移 右移 逻辑右移 算术右移
  5. MySQL(数据类型)
  6. jq轮播图——无缝轮播
  7. Java序列化与反序列化的深度思考
  8. 免费的外文文献搜索下载工具推荐
  9. 小程序笔记(四)发表评论或者普通发帖
  10. 收集的各个方向的开发视频教程,分享给自学的同学