支持漢轉(zhuǎn)拼和拼音分詞的PHP中文工具類(lèi)ChineseUtil
PHP 中文工具類(lèi),支持漢字轉(zhuǎn)拼音、拼音分詞、簡(jiǎn)繁互轉(zhuǎn)。
PHP Chinese Tool class, support Chinese pinyin, pinyin participle, simplified and traditional conversion
目前本類(lèi)庫(kù)擁有的三個(gè)功能,都是在實(shí)際開(kāi)發(fā)過(guò)程中整理出來(lái)的。這次使用的數(shù)據(jù)不同于以前我開(kāi)源過(guò)漢字轉(zhuǎn)拼音和簡(jiǎn)繁互轉(zhuǎn),數(shù)據(jù)都是從字典網(wǎng)站采集下來(lái)的,比以前的數(shù)據(jù)更加準(zhǔn)確。
由于中文的博大精深,字有多音字,簡(jiǎn)體字和繁體字也有多種對(duì)應(yīng)。并且本類(lèi)庫(kù)返回的所有結(jié)果,均為包含所有組合的數(shù)組。
本類(lèi)庫(kù)字典數(shù)據(jù)加載后會(huì)占用 40+ MB 內(nèi)存,在訪問(wèn)量大的接口要使用此類(lèi)漢字轉(zhuǎn)拼音、繁簡(jiǎn)轉(zhuǎn)換功能時(shí),推薦用 Swoole 開(kāi)發(fā)一個(gè)異步服務(wù)程序,只需加載一次數(shù)據(jù),就可以持續(xù)高效地為你提供服務(wù)。
使用說(shuō)明
Composer 直接安裝
composer require yurunsoft/chinese-util
Composer 項(xiàng)目配置引入
"require": {
"yurunsoft/chinese-util" : "~1.0"
}
功能
漢字轉(zhuǎn)拼音
use \Yurun\Util\Chinese; $string = '恭喜發(fā)財(cái)!把我翻譯成拼音看下?'; echo $string, PHP_EOL; echo '所有結(jié)果:', PHP_EOL; var_dump(Chinese::toPinyin($string)); echo '全拼:', PHP_EOL; var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN)); echo '首字母:', PHP_EOL; var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_FIRST)); echo '讀音:', PHP_EOL; var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND)); echo '讀音數(shù)字:', PHP_EOL; var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER)); echo '自選 + 自定義分隔符:', PHP_EOL; var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN | Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER, '/'));
/**
輸出結(jié)果:
array(4) {
["pinyin"]=>
array(1) {
[0]=>
string(58) "gong xi fa cai ! ba wo fan yi cheng pin yin kan xia ? "
}
["pinyinSound"]=>
array(4) {
[0]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kàn xià "
[1]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kàn xià "
[2]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kān xià "
[3]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kān xià "
}
["pinyinSoundNumber"]=>
array(4) {
[0]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[1]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[2]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
[3]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
}
["pinyinFirst"]=>
array(1) {
[0]=>
string(34) "g x f c ! b w f y c p y k x ? "
}
}
全拼:
array(1) {
["pinyin"]=>
array(1) {
[0]=>
string(58) "gong xi fa cai ! ba wo fan yi cheng pin yin kan xia ? "
}
}
首字母:
array(1) {
["pinyinFirst"]=>
array(1) {
[0]=>
string(34) "g x f c ! b w f y c p y k x ? "
}
}
讀音:
array(1) {
["pinyinSound"]=>
array(4) {
[0]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kàn xià "
[1]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kàn xià "
[2]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kān xià "
[3]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kān xià "
}
}
讀音數(shù)字:
array(1) {
["pinyinSoundNumber"]=>
array(4) {
[0]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[1]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[2]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
[3]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
}
}
自選 + 自定義分隔符:
array(2) {
["pinyin"]=>
array(1) {
[0]=>
string(58) "gong/xi/fa/cai/!/ba/wo/fan/yi/cheng/pin/yin/kan/xia/?/"
}
["pinyinSoundNumber"]=>
array(4) {
[0]=>
string(63) "gong1/xi3/fa1/cai2/ba3/wo3/fan1/yi4/cheng2/pin1/yin1/kan4/xia4/"
[1]=>
string(63) "gong1/xi3/fa1/cai2/ba4/wo3/fan1/yi4/cheng2/pin1/yin1/kan4/xia4/"
[2]=>
string(63) "gong1/xi3/fa1/cai2/ba3/wo3/fan1/yi4/cheng2/pin1/yin1/kan1/xia4/"
[3]=>
string(63) "gong1/xi3/fa1/cai2/ba4/wo3/fan1/yi4/cheng2/pin1/yin1/kan1/xia4/"
}
}
* /
拼音分詞
use \Yurun\Util\Chinese;
$string2 = 'xianggang';
echo '"', $string2, '"的分詞結(jié)果:', PHP_EOL;
var_dump(Chinese::splitPinyin($string2));
/**
輸出結(jié)果:
"xianggang"的分詞結(jié)果:
array(2) {
[0]=>
string(12) "xi ang gang "
[1]=>
string(11) "xiang gang "
}
* /
簡(jiǎn)繁互轉(zhuǎn)
use \Yurun\Util\Chinese;
$string3 = '中華人民共和國(guó)!恭喜發(fā)財(cái)!';
echo '"', $string3, '"的簡(jiǎn)體轉(zhuǎn)換:', PHP_EOL;
var_dump(Chinese::toSimplified($string3));
echo '"', $string3, '"的繁體轉(zhuǎn)換:', PHP_EOL;
var_dump(Chinese::toTraditional($string3));
/**
輸出結(jié)果:
"中華人民共和國(guó)!恭喜發(fā)財(cái)!"的簡(jiǎn)體轉(zhuǎn)換:
array(1) {
[0]=>
string(39) "中華人民共和國(guó)!恭喜發(fā)財(cái)!"
}
"中華人民共和國(guó)!恭喜發(fā)財(cái)!"的繁體轉(zhuǎn)換:
array(1) {
[0]=>
string(39) "中華人民共和國(guó)!恭喜發(fā)財(cái)!"
}
* /
相關(guān)文章
淺談PHP設(shè)計(jì)模式之門(mén)面模式Facade
門(mén)面模式的最初目的并不是為了避免讓你閱讀復(fù)雜的 API 文檔,這只是一個(gè)附帶作用。其實(shí)它的本意是為了降低耦合性并且遵循 Demeter 定律。2021-05-05
php中 ob_start等函數(shù)截取標(biāo)準(zhǔn)輸出的方法
這篇文章主要介紹了php中 ob_start等函數(shù)截取標(biāo)準(zhǔn)輸出的方法的相關(guān)資料,需要的朋友可以參考下2015-06-06
php實(shí)現(xiàn)四舍五入的方法小結(jié)
這篇文章主要介紹了php實(shí)現(xiàn)四舍五入的方法,實(shí)例總結(jié)了php實(shí)現(xiàn)四舍五入的三種常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
PHP入門(mén)之常量簡(jiǎn)介和系統(tǒng)常量
PHP常量是一個(gè)簡(jiǎn)單值的標(biāo)識(shí)符(名字)。如同其名稱所暗示的,在腳本執(zhí)行期間該值不能改變(除了所謂的魔術(shù)常量,它們其實(shí)不是常量)2014-05-05
Laravel網(wǎng)站打開(kāi)速度優(yōu)化的方法匯總
最近在學(xué)習(xí) Laravel 框架,自己做了個(gè)小站,總結(jié)了一些 Laravel 網(wǎng)站性能提升的方法。所以下面這篇文章主要給大家匯總介紹了關(guān)于Laravel網(wǎng)站打開(kāi)速度優(yōu)化的一些方法,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-07-07
PHP+Swoole實(shí)現(xiàn)web版的shell客戶端詳解
這篇文章主要為大家詳細(xì)介紹了如何利用PHP+Swoole實(shí)現(xiàn)web版的shell客戶端,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-07-07
PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析
這篇文章主要介紹了PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析,較為深入的分析了addslashes函數(shù)的用法及ecshop自定義函數(shù)addslashes_deep的不足之處,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11
PHP之將POST數(shù)據(jù)轉(zhuǎn)化為字符串的實(shí)現(xiàn)代碼
今天來(lái)分享一個(gè)方便我們做LOG日志記錄的自定義函數(shù),需要將POST數(shù)據(jù)轉(zhuǎn)化為字符串,需要的朋友可以參考下2016-11-11

