ホームページ  >  記事  >  バックエンド開発  >  漢字とピンイン変換のPHPクラス

漢字とピンイン変換のPHPクラス

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-24 15:39:263226ブラウズ

今回は、中国語の文字とピンインを変換するための PHP クラスと、中国語の文字とピンインを PHP に変換するための 注意事項 についてお届けします。実際のケースを見てみましょう。

PHP 中国語ツール クラスは、中国語のピンインへの変換、ピンインの単語の分割、簡体字と繁体字間の変換をサポートします。

PHP中国語ツールクラス、中国語ピンイン、ピンイン分詞、簡体字と繁体字変換をサポート

現在、このクラスライブラリの3つの関数は、実際の開発プロセス中にすべて整理されています。今回使用したデータは、これまでのオープンソースの漢字からピンインへの変換や、中国語の簡体字と繁体字間の変換とは異なり、すべて辞書サイトから収集したデータであり、以前のデータよりも正確です。

中国語は広大で奥深いため、文字には多声文字があり、簡体字と繁体字の間には多くの対応関係があります。そして、このクラス ライブラリによって返されるすべての結果は、すべての組み合わせを含む 配列 です。

このクラス ライブラリの辞書データは、ロード後に 40 MB 以上のメモリを占有します。トラフィックの多いインターフェイスで、中国語の文字をピンインに変換したり、繁体字を簡体字に変換したりする機能を使用する必要がある場合は、Swoole を使用することをお勧めします。データを一度ロードするだけで済む非同期サービス プログラムを開発すると、効率的にサービスを提供し続けることができます。

使用説明書

Composer を直接install

composer <a href="http://www.php.cn/wiki/136.html" target="_blank">必須<code>composer <a href="http://www.php.cn/wiki/136.html" target="_blank">require</a> yurunsoft/chinese-util yurunsoft / chinese-util

Composer プロジェクト構成では、

"require": {
  "yurunsoft/chinese-util" : "~1.0"
}

関数が導入されています

漢字からピンインへの変換

use \Yurun\Util\Chinese;
$string = '恭喜發財!把我翻译成拼音看下?';
echo $string, PHP_EOL;
echo '所有结果:', 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 '读音数字:', 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, '/'));
/**
输出结果:
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à "
 }
}
读音数字:
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, '"的分词结果:', PHP_EOL;
var_dump(Chinese::splitPinyin($string2));
/**
输出结果:
"xianggang"的分词结果:
array(2) {
 [0]=>
 string(12) "xi ang gang "
 [1]=>
 string(11) "xiang gang "
}
 * /

簡体字と繁体字の変換

use \Yurun\Util\Chinese;
$string3 = '中华人民共和国!恭喜發財!';
echo '"', $string3, '"的简体转换:', PHP_EOL;
var_dump(Chinese::toSimplified($string3));
echo '"', $string3, '"的繁体转换:', PHP_EOL;
var_dump(Chinese::toTraditional($string3));
/**
输出结果:
"中华人民共和国!恭喜發財!"的简体转换:
array(1) {
 [0]=>
 string(39) "中华人民共和国!恭喜发财!"
}
"中华人民共和国!恭喜發財!"的繁体转换:
array(1) {
 [0]=>
 string(39) "中華人民共和國!恭喜發財!"
}
 * /

この方法は習得できたと思いますこの記事の事例を読んだ後は、php 中国語 Web サイトの他の関連記事にも注目してください。

推奨書籍:

phpカスタム2次元配列ソート関数array

PHPサーバーサイドAPIとインターフェース開発の詳細な説明

以上が漢字とピンイン変換のPHPクラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。