基于词库的中文转拼音优质解决方案(PHP)
jopen
9年前
基于 CC-CEDICT 词典的中文转拼音工具,更准确的汉字转拼音解决方案。
SAE服务地址:http://string2pinyin.sinaapp.com/doc.html
use \Overtrue\Pinyin\Pinyin; echo Pinyin::trans('带着希望去旅行,比到达终点更美好'); // dài zhe xī wàng qù lǔ xíng bǐ dào dá zhōng diǎn gèng měi hǎo //多音字 // 了 Pinyin::trans('了然'); // liǎo rán Pinyin::trans('来了'); // lái le // 还 Pinyin::trans('还有'); // hái yǒu Pinyin::trans('交还'); // jiāo huán // 什 Pinyin::trans('什么'); // shén me Pinyin::trans('什锦'); // shí jǐn // 便 Pinyin::trans('便当'); // biàn dāng Pinyin::trans('便宜'); // pián yí // 剥 Pinyin::trans('剥皮'); // bāo pí Pinyin::trans('剥皮器'); // bō pí qì // 不 Pinyin::trans('赔不是'); // péi bú shi Pinyin::trans('跑了和尚,跑不了庙'); // pǎo le hé shàng , pǎo bù liǎo miào // 降 Pinyin::trans('降温'); // jiàng wēn Pinyin::trans('投降'); // tóu xiáng // 都 Pinyin::trans('首都'); // shǒu dū Pinyin::trans('都什么年代了'); // dōu shén me nián dài le // 乐 Pinyin::trans('快乐'); // kuài lè Pinyin::trans('音乐'); // yīn yuè // 长 Pinyin::trans('成长'); // chéng zhǎng Pinyin::trans('长江'); // cháng jiāng // 难 Pinyin::trans('难民'); // nàn mín Pinyin::trans('难过'); // nán guò
安装
-
使用 Composer 安装:
composer require overtrue/pinyin:2.*
或者在你的项目 composer.json 加入:
{ "require": { "overtrue/pinyin": "2.*" } }
-
直接下载文件src/Pinyin/Pinyin.php引入到项目中。
使用
<?php use \Overtrue\Pinyin\Pinyin; //获取拼音 echo Pinyin::trans('带着希望去旅行,比到达终点更美好'); // dài zhe xī wàng qù lǔ xíng bǐ dào dá zhōng diǎn gèng měi hǎo //获取首字母 echo Pinyin::letter('带着希望去旅行,比到达终点更美好'); // d z x w q l x b d d z d g m h //当前也可以两个同时获取 echo Pinyin::parse('带着希望去旅行,比到达终点更美好'); // output: // array( // 'src' => '带着希望去旅行,比到达终点更美好', // 'pinyin' => 'dài zhe xī wàng qù lǔ xíng bǐ dào dá zhōng diǎn gèng měi hǎo', // 'letter' => 'd z x w q l x b d d z d g m h', // ); // 加载自定义补充词库 $appends = array( '冷' => 're4', ); Pinyin::appends($appends); echo Pinyin::trans('冷'); // rè
设置
选项 | 描述 |
---|---|
delimiter | 分隔符,默认为一个空格 |
accent | 是否输出音调 |
only_chinese | 只保留$string中中文部分 |
uppercase | 取首字母时的大写,默认false |
全局设置: Pinyin::set('delimiter', '-');
临时设置: Pinyin::trans($word, $settings)在调用的方法后传参
example:
Pinyin::set('delimiter', '-');//全局 echo Pinyin::trans('带着希望去旅行,比到达终点更美好'); // dài-zhe-xī-wàng-qù-lǔ-xíng-bǐ-dào-dá-zhōng-diǎn-gèng-měi-hǎo $setting = [ 'delimiter' => '-', 'accent' => false, ]; echo Pinyin::trans('带着希望去旅行,比到达终点更美好', $setting);//这里的 setting 只是临时修改,并非全局设置 // dai-zhe-xi-wang-qu-lu-xing-bi-dao-da-zhong-dian-geng-mei-hao
Pinyin::set('accent', false); echo Pinyin::trans('带着希望去旅行,比到达终点更美好'); // dai zhe xi wang qu lu xing bi dao da zhong dian geng mei hao
在 Laravel 中使用
独立的包在这里:overtrue/laravel-pinyin
使用
与上面的使用方法一样:
use \Overtrue\Pinyin\Pinyin; //... $pinyin = Pinyin::trans("带着希望去旅行,比到达终点更美好");
ODO
- 添加获取首字母;
- 添加补充词典;
- 添加音频表,根据音频提高未匹配词典时多音字准确度;
- 添加首字母输出大小写选项uppercase;
- 支持载入自定义词库:Pinyin::appends($appends = array());
- 支持 Laravel 5 的service provider。overtrue/laravel-pinyin