Heim >Backend-Entwicklung >PHP-Tutorial >基于词库的中文转拼音优质解决方案(PHP)

基于词库的中文转拼音优质解决方案(PHP)

WBOY
WBOYOriginal
2016-06-20 12:53:381330Durchsuche

基于 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ánPinyin::trans('来了'); // lái le// 还Pinyin::trans('还有'); // hái yǒuPinyin::trans('交还'); // jiāo huán// 什Pinyin::trans('什么'); // shén mePinyin::trans('什锦'); // shí jǐn// 便Pinyin::trans('便当'); // biàn dāngPinyin::trans('便宜'); // pián yí// 剥Pinyin::trans('剥皮'); // bāo píPinyin::trans('剥皮器'); // bō pí qì// 不Pinyin::trans('赔不是'); // péi bú shiPinyin::trans('跑了和尚,跑不了庙'); // pǎo le hé shàng , pǎo bù liǎo miào// 降Pinyin::trans('降温'); // jiàng wēnPinyin::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ǎngPinyin::trans('长江'); // cháng jiāng// 难Pinyin::trans('难民'); // nàn mínPinyin::trans('难过'); // nán guò

安装

  • 使用 Composer 安装:

    composer require overtrue/pinyin:2.*

    或者在你的项目 composer.json 加入:

    { "require": { "overtrue/pinyin": "2.*" }}

  • 直接下载文件src/Pinyin/Pinyin.php引入到项目中。

  • 使用

    <?phpuse \Overtrue\Pinyin\Pinyin;//获取拼音echo Pinyin::trans('带着希望去旅行,比到达终点更美好');// d&agrave;i zhe xī w&agrave;ng q&ugrave; lǔ x&iacute;ng bǐ d&agrave;o d&aacute; zhōng diǎn g&egrave;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&agrave;i zhe xī w&agrave;ng q&ugrave; lǔ x&iacute;ng bǐ d&agrave;o d&aacute; zhōng diǎn g&egrave;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&egrave;

    设置

    选项 描述
    delimiter 分隔符,默认为一个空格
    accent 是否输出音调
    only_chinese 只保留$string中中文部分
    uppercase 取首字母时的大写,默认false

    全局设置: Pinyin::set('delimiter', '-');

    临时设置: Pinyin::trans($word, $settings)在调用的方法后传参

    example:

    Pinyin::set('delimiter', '-');//全局echo Pinyin::trans('带着希望去旅行,比到达终点更美好');// d&agrave;i-zhe-xī-w&agrave;ng-q&ugrave;-lǔ-x&iacute;ng-bǐ-d&agrave;o-d&aacute;-zhōng-diǎn-g&egrave;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
    https://github.com/overtrue/pinyin
    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn