sinacms/pinyin

中文转拼音翻译器。

2.6.7 2016-01-19 06:57 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Code Coverage

基于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ò
...

安装

  1. 使用Composer安装

    composer require overtrue/pinyin:2.*
    

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

    {
        "require": {
            "overtrue/pinyin": "2.*"
        }
    }
  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è

设置

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

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

示例

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("带着希望去旅行,比到达终点更美好");

待办事项

  • 添加获取首字母;
  • 添加补充词典;
  • 添加音频表,根据音频提高未匹配词典时多音字的准确度;
  • 添加首字母输出大小写选项uppercase
  • 支持载入自定义词库:Pinyin::appends($appends = array())
  • 支持Laravel 5的service provider。overtrue/laravel-pinyin

贡献

欢迎提出意见及完善补充词库src/data/dict.php! 💋

参考

许可证

MIT