Skip to content
forked from overtrue/pinyin

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

License

Notifications You must be signed in to change notification settings

fizzcome/pinyin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

188 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pinyin

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

基于 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è

设置

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

TODO

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

Contribution

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

参考

License

MIT

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%