Ein Konvertierungstool für Chinesisch in Pinyin, das auf dem mozillazg/pinyin-data-Wörterbuch basiert, eine genauere Lösung zum Konvertieren chinesischer Zeichen in Pinyin, die multiphonetische Zeichen unterstützt.
Gefällt Ihnen mein Projekt? Klicken Sie hier, um mich zu unterstützen
Mit Composer installieren:
composer require overtrue/pinyin:^5.0
Mit Ausnahme der Methode zum Abrufen des ersten Buchstabens unterstützen alle Methoden einen zweiten Parameter, der zur Angabe des Pinyin-Formats verwendet wird. Die optionalen Werte sind:
symbol
(Standard) Tonsymbol, z. B. pīn yīn
none
gibt kein Pinyin aus, z. B. pin yin
number
, z. B. pin1 yin1
Mit Ausnahme von permalink
, der einen String zurückgibt, geben alle anderen Methoden den Sammlungstyp OvertruePinyinCollection
zurück:
use Overtrue Pinyin Pinyin ;
$ pinyin = Pinyin:: sentence ( '你好,世界' );
Sie können auf die Sammlungsinhalte zugreifen über:
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
Wird normalerweise für Artikellinks usw. verwendet. Sie können die permalink
-Methode verwenden, um die Pinyin-Zeichenfolge abzurufen:
echo Pinyin:: permalink ( '带着希望去旅行' ); // dai-zhe-xi-wang-qu-lyu-xing
echo Pinyin:: permalink ( '带着希望去旅行' , ' . ' ); // dai.zhe.xi.wang.qu.lyu.xing
Normalerweise zum Erstellen von Indizes für die Suche verwendet, können Sie die abbr
-Methode zum Konvertieren verwenden:
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
Initialen
Wandeln Sie den ersten Buchstaben als Nachnamen und den Rest als normale Wörter um:
Pinyin:: nameAbbr ( '欧阳' ); // ['o', 'y']
echo Pinyin:: nameAbbr ( '单单单' )-> join ( ' - ' ); // s-d-d
Die Aussprache des Nachnamens eines Namens unterscheidet sich etwas von der gewöhnlicher Zeichen. Beispielsweise ist die übliche Aussprache von „ dan
“, aber wenn es als Nachname verwendet wird, wird es shan
ausgesprochen.
Pinyin:: name ( '单某某' ); // ['shàn', 'mǒu', 'mǒu']
Pinyin:: name ( '单某某' , ' none ' ); // ['shan', 'mou', 'mou']
Pinyin:: name ( '单某某' , ' none ' )-> join ( ' - ' ); // shan-mou-mou
Gemäß den nationalen Vorschriften bezüglich der Erinnerung, dass das Pinyin ü (Lu, Lu, Lu, Lu, Nv usw.) des Namens auf dem chinesischen Passreisedokument einheitlich als YU geschrieben wird, wandeln Sie ü
in yu
:
Pinyin:: passportName ( '吕小布' ); // ['lyu', 'xiao', 'bu']
Pinyin:: passportName ( '女小花' ); // ['nyu', 'xiao', 'hua']
Pinyin:: passportName ( '律师' ); // ['lyu', 'shi']
Der Rückgabewert polyphonetischer Zeichen ist eine Sammlung assoziativer Arrays. Standardmäßig werden alle Aussprachen nach der Deduplizierung zurückgegeben:
$ pinyin = Pinyin:: polyphones ( '重庆' );
$ pinyin [ '重' ]; // ["zhòng", "chóng", "tóng"]
$ pinyin [ '庆' ]; // ["qìng"]
$ pinyin -> toArray ();
// [
// "重": ["zhòng", "chóng", "tóng"],
// "庆": ["qìng"]
// ]
Wenn Sie keine Duplikate entfernen möchten, können Sie es in Array-Form zurückgeben:
$ 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"]]
// ]
Ähnlich wie bei polyphonen Zeichen ist der Rückgabewert eines einzelnen Zeichens eine Zeichenfolge. Polyphone Zeichen werden entsprechend der Häufigkeit des Zeichens angepasst, um gemeinsame Töne zu erhalten:
$ pinyin = Pinyin:: chars ( '重庆' );
echo $ pinyin [ '重' ]; // "zhòng"
echo $ pinyin [ '庆' ]; // "qìng"
$ pinyin -> toArray ();
// [
// "重": "zhòng",
// "庆": "qìng"
// ]
Warnung
Bei der Verarbeitung einzelner Wörter kann es in Wortumgebungen zu falschen Situationen kommen, da polyphone Wörter gemeinsame Laute aus der Worthäufigkeitstabelle erhalten. Es wird empfohlen, die polyphone Textverarbeitung zu verwenden.
Weitere Informationen zur Verwendung finden Sie in den Testfällen.
Gemäß den Bestimmungen des National Language and Character Working Committee sind lv
, lyu
und lǚ
alle korrekt, aber lv
wird am häufigsten verwendet, sodass lv
standardmäßig verwendet wird. Wenn Sie andere verwenden müssen, können Sie diese übergeben in während der Initialisierung:
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
Warnung
Nur gültig, wenn der Pinyin-Stil im Nicht-
none
-Modus ist.
Sie können Pinyin über die Befehlszeile konvertieren:
php ./bin/pinyin 带着希望去旅行 --method=sentence --tone-style=symbol
# dài zhe xī wàng qù lǚ xíng
Weitere Verwendungsmethoden finden Sie in der Hilfedokumentation:
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 显示帮助.
Das unabhängige Paket ist hier: overtrue/laravel-pinyin
Wenn Sie diesen Bedarf haben, können Sie sich auch über mein anderes Paket informieren: overtrue/php-opencc
Willkommen, um Kommentare abzugeben und den Wortschatz zu verbessern:
Wenn Ihnen mein Projekt gefällt und Sie es unterstützen möchten, klicken Sie hier
Vielen Dank an Jetbrains für die freundliche Bereitstellung einer Lizenz für die Arbeit an diesem und anderen Open-Source-Projekten.
Sie fragen sich, wie Sie ein PHP-Erweiterungspaket von Grund auf erstellen können?
Bitte achten Sie auf meinen Praxiskurs, in dem ich einige Erfahrungen in der Erweiterungsentwicklung weitergeben werde – „Praktisches Tutorial zum PHP Extension Pack – Von den ersten Schritten bis zur Veröffentlichung“.
MIT