支持漢轉(zhuǎn)拼和拼音分詞的PHP中文工具類ChineseUtil
PHP 中文工具類,支持漢字轉(zhuǎn)拼音、拼音分詞、簡繁互轉(zhuǎn)。
PHP Chinese Tool class, support Chinese pinyin, pinyin participle, simplified and traditional conversion
目前本類庫擁有的三個(gè)功能,都是在實(shí)際開發(fā)過程中整理出來的。這次使用的數(shù)據(jù)不同于以前我開源過漢字轉(zhuǎn)拼音和簡繁互轉(zhuǎn),數(shù)據(jù)都是從字典網(wǎng)站采集下來的,比以前的數(shù)據(jù)更加準(zhǔn)確。
由于中文的博大精深,字有多音字,簡體字和繁體字也有多種對應(yīng)。并且本類庫返回的所有結(jié)果,均為包含所有組合的數(shù)組。
本類庫字典數(shù)據(jù)加載后會(huì)占用 40+ MB 內(nèi)存,在訪問量大的接口要使用此類漢字轉(zhuǎn)拼音、繁簡轉(zhuǎn)換功能時(shí),推薦用 Swoole 開發(fā)一個(gè)異步服務(wù)程序,只需加載一次數(shù)據(jù),就可以持續(xù)高效地為你提供服務(wù)。
使用說明
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 " } * /
簡繁互轉(zhuǎn)
use \Yurun\Util\Chinese; $string3 = '中華人民共和國!恭喜發(fā)財(cái)!'; echo '"', $string3, '"的簡體轉(zhuǎn)換:', PHP_EOL; var_dump(Chinese::toSimplified($string3)); echo '"', $string3, '"的繁體轉(zhuǎn)換:', PHP_EOL; var_dump(Chinese::toTraditional($string3)); /** 輸出結(jié)果: "中華人民共和國!恭喜發(fā)財(cái)!"的簡體轉(zhuǎn)換: array(1) { [0]=> string(39) "中華人民共和國!恭喜發(fā)財(cái)!" } "中華人民共和國!恭喜發(fā)財(cái)!"的繁體轉(zhuǎn)換: array(1) { [0]=> string(39) "中華人民共和國!恭喜發(fā)財(cái)!" } * /
相關(guān)文章
PHP中explode函數(shù)和split函數(shù)的區(qū)別小結(jié)
相信大家都知道,explode和split在php中都是可以通過特定字符把字符串轉(zhuǎn)換成數(shù)組的,那么explode和split既然是一樣的為什么會(huì)有兩個(gè)函數(shù)呢,那么explode和split的區(qū)別在哪里呢,下面跟著小編我們一起來看看。2016-08-08Http 1.1 Etag 與 Last-Modified提高php效率
2008-01-01Windows環(huán)境下安裝PHP Pear的方法圖文教程
這篇文章主要介紹了Windows環(huán)境下安裝PHP Pear的方法,結(jié)合圖文形式詳細(xì)說明了Windows環(huán)境下安裝PHP Pear的相關(guān)命令與操作技巧,需要的朋友可以參考下2019-07-07使用PHP數(shù)組實(shí)現(xiàn)無限分類,不使用數(shù)據(jù)庫,不使用遞歸.
使用PHP數(shù)組實(shí)現(xiàn)無限分類,不使用數(shù)據(jù)庫,不使用遞歸....2006-12-12PHP實(shí)現(xiàn)微信JS-SDK接口選擇相冊及拍照并上傳的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)微信JS-SDK接口選擇相冊及拍照并上傳的方法,涉及php微信接口的調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12PHP中危險(xiǎn)的file_put_contents函數(shù)詳解
file_put_contents() 函數(shù)把一個(gè)字符串寫入文件中。最近發(fā)現(xiàn)file_put_contents函數(shù)有一直沒注意到的問題,所以下面這篇文章主要給大家介紹了關(guān)于PHP中危險(xiǎn)的file_put_contents函數(shù)的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看吧。2017-11-11用PHP將網(wǎng)址字符串轉(zhuǎn)換成超鏈接(網(wǎng)址或email)
該函數(shù)將 URL 和 E-mail 地址字符串轉(zhuǎn)換為可點(diǎn)擊的超級鏈接。2010-05-05