Maison >développement back-end >tutoriel php >基于词库的中文转拼音优质解决方案(PHP)

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

WBOY
WBOYoriginal
2016-06-20 12:53:381331parcourir

基于 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
    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn