mozillazg/pinyin-data 辞書に基づく中国語からピンインへの変換ツール。中国語の文字を複数の音声文字をサポートするピンインに変換するためのより正確なソリューションです。
私のプロジェクトが気に入りましたか?ここをクリックして私をサポートしてください
Composer を使用してインストールします。
composer require overtrue/pinyin:^5.0
最初の文字を取得するメソッドを除くすべてのメソッドは、ピンイン形式を指定するために使用される 2 番目のパラメーターをサポートしています。オプションの値は次のとおりです。
symbol
(デフォルト) 声調記号pīn yīn
none
pin yin
number
の末尾にある数字パターンのピンインpin1 yin1
など)文字列を返すpermalink
を除き、他のすべてのメソッドはコレクション型OvertruePinyinCollection
を返します。
use Overtrue Pinyin Pinyin ;
$ pinyin = Pinyin:: sentence ( '你好,世界' );
コレクションのコンテンツには次の方法でアクセスできます。
echo $ pinyin ; // nǐ hǎo shì jiè
// 直接将对象转成字符串
$ string = ( string ) $ pinyin ; // nǐ hǎo shì jiè
$ pinyin -> toArray (); // ['nǐ', 'hǎo', 'shì', 'jiè']
// 直接使用索引访问
$ pinyin [ 0 ]; // 'nǐ'
// 使用函数遍历
$ pinyin -> map ( ' ucfirst ' ); // ['Nǐ', 'Hǎo', 'Shì', 'Jiè']
// 拼接为字符串
$ pinyin -> join ( ' ' ); // 'nǐ hǎo shì jiè'
$ pinyin -> join ( ' - ' ); // 'nǐ-hǎo-shì-jiè'
// 转成 json
$ pinyin -> toJson (); // '["nǐ","hǎo","shì","jiè"]'
json_encode ( $ pinyin ); // '["nǐ","hǎo","shì","jiè"]'
use Overtrue Pinyin Pinyin ;
echo Pinyin:: sentence ( '带着希望去旅行,比到达终点更美好' );
// 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:: sentence ( '带着希望去旅行,比到达终点更美好' , ' none ' );
// dai zhe xi wang qu lv xing , bi dao da zhong dian geng mei hao
// 保留所有非汉字字符
echo Pinyin:: fullSentence ( 'ル是片假名,π是希腊字母' , ' none ' );
// ル shi pian jia ming ,π shi xi la zi mu
通常、記事のリンクなどに使用されますが、 permalink
メソッドを使用してピンイン文字列を取得できます。
echo Pinyin:: permalink ( '带着希望去旅行' ); // dai-zhe-xi-wang-qu-lyu-xing
echo Pinyin:: permalink ( '带着希望去旅行' , ' . ' ); // dai.zhe.xi.wang.qu.lyu.xing
通常、検索用のインデックスを作成するために使用されますが、 abbr
メソッドを使用して次の変換を行うことができます。
Pinyin:: abbr ( '带着希望去旅行' ); // ['d', 'z', 'x', 'w', 'q', 'l', 'x']
echo Pinyin:: abbr ( '带着希望去旅行' )-> join ( ' - ' ); // d-z-x-w-q-l-x
echo Pinyin:: abbr ( '你好2018! ' )-> join ( '' ); // nh2018
echo Pinyin:: abbr ( ' Happy New Year! 2018! ' )-> join ( '' ); // HNY2018
// 保留原字符串的英文单词
echo Pinyin:: abbr ( ' CGV电影院' , false , true )-> join ( '' ); // CGVdyy
イニシャル
最初の文字を姓として変換し、残りを通常の単語として変換します。
Pinyin:: nameAbbr ( '欧阳' ); // ['o', 'y']
echo Pinyin:: nameAbbr ( '单单单' )-> join ( ' - ' ); // s-d-d
名前の姓の発音は、通常の文字の発音とは多少異なります。たとえば、「dan」の一般的な発音は「 dan
」ですが、姓として使用される場合はshan
と発音されます。
Pinyin:: name ( '单某某' ); // ['shàn', 'mǒu', 'mǒu']
Pinyin:: name ( '单某某' , ' none ' ); // ['shan', 'mou', 'mou']
Pinyin:: name ( '单某某' , ' none ' )-> join ( ' - ' ); // shan-mou-mou
中国のパスポートの旅行書類に記載される名前のピンイン ü (Lu、Lu、Lu、Lu、Nv など) は一律 YU と綴られるという注意に関する国内規制に従って、 ü
yu
に変換します。
Pinyin:: passportName ( '吕小布' ); // ['lyu', 'xiao', 'bu']
Pinyin:: passportName ( '女小花' ); // ['nyu', 'xiao', 'hua']
Pinyin:: passportName ( '律师' ); // ['lyu', 'shi']
多発音文字の戻り値は、連想配列のコレクションです。デフォルトでは、重複排除後のすべての発音が返されます。
$ pinyin = Pinyin:: polyphones ( '重庆' );
$ pinyin [ '重' ]; // ["zhòng", "chóng", "tóng"]
$ pinyin [ '庆' ]; // ["qìng"]
$ pinyin -> toArray ();
// [
// "重": ["zhòng", "chóng", "tóng"],
// "庆": ["qìng"]
// ]
重複を削除したくない場合は、配列形式で返すことができます。
$ pinyin = Pinyin:: polyphones ( '重庆重庆' , Converter:: TONE_STYLE_SYMBOL , true );
// or
$ pinyin = Pinyin:: polyphonesAsArray ( '重庆重庆' , Converter:: TONE_STYLE_SYMBOL );
$ pinyin -> toArray ();
// [
// ["重" => ["zhòng", "chóng", "tóng"]],
// ["庆" => ["qìng"]],
// ["重" => ["zhòng", "chóng", "tóng"]],
// ["庆" => ["qìng"]]
// ]
多声文字と同様に、単一文字の戻り値は文字列です。多声文字は、一般的な音を取得するために文字の周波数に応じて調整されます。
$ pinyin = Pinyin:: chars ( '重庆' );
echo $ pinyin [ '重' ]; // "zhòng"
echo $ pinyin [ '庆' ]; // "qìng"
$ pinyin -> toArray ();
// [
// "重": "zhòng",
// "庆": "qìng"
// ]
警告
単一の単語を処理する場合、多声単語は単語頻度テーブルから共通の音を取得するため、単語環境では誤った状況が発生する可能性があります。多声単語処理を使用することをお勧めします。
詳しい使用方法については、テスト ケースを参照してください。
国語文字作業委員会の規則によれば、 lv
、 lyu
、およびlǚ
すべて正しいですが、 lv
最も一般的に使用されるため、他のものを使用する必要がある場合はデフォルトでlv
が使用されます。初期化中に:
echo Pinyin:: sentence ( '旅行' );
// lǚ xíng
echo Pinyin:: sentence ( '旅行' , ' none ' );
// lv xing
echo Pinyin:: yuToYu ()-> sentence ( '旅行' , ' none ' );
// lyu xing
echo Pinyin:: yuToU ()-> sentence ( '旅行' , ' none ' );
// lu xing
echo Pinyin:: yuToV ()-> sentence ( '旅行' , ' none ' );
// lv xing
警告
ピンイン スタイルが非
none
モードの場合にのみ有効です。
コマンドラインを使用してピンインを変換できます。
php ./bin/pinyin 带着希望去旅行 --method=sentence --tone-style=symbol
# dài zhe xī wàng qù lǚ xíng
その他の使用方法については、ヘルプ ドキュメントを参照してください。
php ./bin/pinyin --help
# Usage:
# ./pinyin [chinese] [method] [options]
# Options:
# -j, --json 输出 JSON 格式.
# -c, --compact 不格式化输出 JSON.
# -m, --method=[method] 转换方式,可选:sentence/sentenceFull/permalink/abbr/nameAbbr/name/passportName/phrase/polyphones/chars.
# --no-tone 不使用音调.
# --tone-style=[style] 音调风格,可选值:symbol/none/number, default: none.
# -h, --help 显示帮助.
独立したパッケージはここにあります: overtrue/laravel-pinyin
この必要がある場合は、私の他のパッケージについても学ぶことができます: overtrue/php-opencc
コメントを提供して語彙を増やすことを歓迎します。
私のプロジェクトが気に入ってサポートしたい場合は、ここをクリックしてください
このプロジェクトや他のオープンソース プロジェクトに取り組むためのライセンスを親切にも提供してくださった Jetbrains に感謝します。
PHP 拡張機能パッケージを最初から構築する方法を知りたいですか?
拡張機能開発の経験を共有する私の実践的なコース「PHP 拡張パック実践チュートリアル - 入門からリリースまで」に注目してください。
マサチューセッツ工科大学