thinkphp5整合系列之汉字转拼音完美支持多音字
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整合系列之汉字转拼音完美支持多音字相关推荐
- android 汉字转字节,android实现汉字转拼音功能 带多音字识别
android 汉字转拼音带多音字识别功能,供大家参考,具体内容如下 问题来源 在做地名按首字母排序的时候出现了这样一个bug.长沙会被翻译拼音成zhangsha,重庆会被翻译拼音成zhong qin ...
- 支持生僻字且自动识别utf-8编码的php汉字转拼音类,PHP汉字转拼音类(支持生僻字且自动识别utf-8编码)...
这篇文章主要介绍了PHP汉字转拼音类(支持生僻字且自动识别utf-8编码),非常实用!需要的朋友可以参考下. 拼音类文件py_class.php源码如下: class py_class{ functi ...
- 中文汉字注音,汉字转拼音,支持图片识别文字,支持结果转图下载,附上小程序核心源码
"文字注音"小程序在微信.字节跳动.支付宝.QQ等小程序平台同步上线,微信.头条.抖音.支付宝.QQ中搜索"文字注音"即可获得. 一.功能 汉字转拼音,支持图片 ...
- java 判断汉字音调_JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin
JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin 使用JPinyin,可以实现汉字转换为拼音,并自动识别常用多音字,还支持简体转换为繁体,检查是否为简体,是否为繁体,是否为中文字符等功能 ...
- 汉字字词转拼音接口(支持多音字)
汉字字词转拼音接口(支持多音字) 用php写的一个在线汉字字词转拼音API,支持90%+的多音字词,可选纯字母或带音调. 参数: wd:待转汉字或词语或句子(不建议句子) s:s=1 带音调 s=0纯 ...
- sql文字转换全拼_SQL汉字转拼音函数-支持首字母、全拼
作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 select dbo.procGetPY ('中國') Create FUNCTION dbo.procGetPY ( @str ...
- java中文转拼音 多音字_java使用jpinyin汉语转拼音(支持多音字)
importcom.github.stuxuhai.jpinyin.ChineseHelper;importcom.github.stuxuhai.jpinyin.PinyinFormat;impor ...
- java汉字转拼音区别多音字_java中文转拼音,支持多音字词组,不支持音标
官方的pinyin4j虽然强大,能够支持音标转换,但硬伤在于不支持词组.就此特地将pinyin4j的词库提取出来,研究了下,发现多音字有2000多,去掉音标就1000多,常用字也就500左右.然后估摸 ...
- c#版汉字拼音大全,支持多音字
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
最新文章
- Storybord切换
- 模板编译template的背后,究竟发生了什么事?带你了解template的纸短情长
- iOS UIWebView加载网页、文件、HTML
- inner join 与 left join 、right join之间的区别
- Leecode刷题热题HOT100(13)——罗马数字转整数
- 将Maven集成到idea中并创建第一个Maven项目
- MySQL Replicaction Error 一例
- java string返回_老生常谈Java String字符串(必看篇)
- matlab如何计算方差分析,matlab-方差分析.ppt
- 2015中考计算机考试时间,2015中考时间安排
- opencv获取设备ID和名称
- 性能测试工具—LoadRunner
- 12道Java高级面试题:java时间差计算
- 计算机和遥感哪个专业好啊,遥感科学与技术专业毕业是干什么的
- HBase的Nonce实现分析
- 已解决:出现了自己签名的证书。 错误: 证书通用名 “www.doctorcom.com” 与所要求的主机名 “raw.githubusercontent.com” 不符。
- 仿花瓣网html模板,仿花瓣网的自动悬浮导航效果 jquery
- 天津大学新校区计算机学院,天津大学新校区规划最终方案月底出炉地铁将连接新老校区...
- arduino LED灯控制基础篇
- 基于大数据的高校生源可视化分析系统