php は、中国語の文字をピンインに変換するメソッドをツールキットにカプセル化します。コードは次のとおりです。
class PinyinTool {
private static $pylist = array(
'ba'=>-20283、'bai'=>-20265、'ban' =>-20257、'bang'=>-20242、 'bao'=>-20230、'bei'=>-20051、'ben'=>-20036、'beng'=>-20032、'bi'=>-20026、'bian'=> ;-20002,'biao'=>-19990,'bie'=>-19986,'bin'=>-19982,'bing'= >-19976,'bo'=>-19805,' bu'=>-19784、
'ca'=>-19775、'cai'=>-19774、'can' =>-19763、'cang'=>-19756、 'cao'=>-19751、'ce'=>-19746、'ceng'=>-19741、'cha'=>-19739、'chai'=>-19728、'chan'=> ;-19725,'chang'=>-19715,'chao'=>-19540,'che'=>-19531,'chen'=>-19525,'cheng'=>-19515,' chi'=>-19500、'chong'=>-19484、'chou'=>-19479、'chu'=>-19467、'chuai'=>-19289、'chuan'=> -19288,'chuang'=>-19281,'chui'=>-19275,'chun'=>-19270,'chuo'=>-19263,'ci'=>-19261,'cong '=>-19249、'cou'=>-19243、'cu'=>-19242、'cuan'=>-19238、'cui'=>-19235、'cun'=>- 19227,'cuo'=>-19224,
'da'=>-19218,'dai'=>-19212,'dan'=>-19038,'dang'=> -19023,'dao'=>-19018,'de'=>-19006,'deng'=>-19003,'di'=> ;-18996,'dian'=>-18977,'diao '=>-18961、'die'=>-18952、'ding'=>-18783、'diu'=>-18774、'dong'=>-18773、'dou'=>- 18763,'du'=>-18756,'duan'=>-18741,'dui'=>-18735,'dun'=> -18731,'duo'=>-18722,
'e'=>-18710、'en'=>-18697、'er'=>-18696、
'fa'=>-18526、'fan'=> ;-18518,'ファング'=>-18501,'フェイ'=>-18490,'フェン'=>-18478,'フォン'=>-18463,'フォ'=>-18448,' fou'=>-18447、'fu'=>-18446、
'ga'=>-18239、'gai' =>-18237、'gan'=>-18231、 'ギャン'=>-18220、'ガオ'=>-18211、'ゲ'=>-18201、'ゲイ'=>-18184、'ゲン'=>-18183、'ゲン'=> ;-18181,'gong'=>-18012,'gou'=>-17997,'gu'=>-17988,'gua'=>-17970,'guai'=>-17964,' guan'=>-17961、'guang'=>-17950、'gui'=>-17947、
'gun' =>-17931、'guo'=>-17928、
'ハ'=>-17922、'ハイ'=>-17759、'ハン'=>-17752、'ハン'=>-17733、'ハオ'=>-17730 、'he'=>-17721、'hei'=>-17703、'hen'=>-17701、'heng'=>- 17697、'hong'=>-17692、'hou'= >-17683,'hu'=>-17676,'hua'=>-17496,'huai'=>-17487,'huan' =>-17482,'huang'=>-17468, 'hui'=>-17454,
'hun'=>-17433,'huo'=>-17427,
'ji'=>-17417,'jia '=>-17202、'jian'=>-17185、'jiang'=>-16983、'jiao'=>-16970、'jie'=>-16942、'jin'=>- 16915,'jing'=>-16733,'jiong'=>-16708,'jiu'=>-16706,'ju'=> -16689,'juan'=>-16664,'jue' =>-16657,'ジュン'=>-16647,
'カ'=>-16474,'カイ'=> ;-16470,'カン'=>-16465,'カン'=>-16459、'kao'=>-16452、'ke'=>-16448、'ken'=>-16433、'keng'=>-16429、'kong'=>- 16427,'コウ'=>-16423,'ク'=>-16419,'クア'=>-16412,'クアイ'=> -16407,'クアン'=>-16403,'クアン' =>-16401,'kui'=>-16393,'kun'=>-16220,'kuo'=>-16216,
'la'=>-16212,'lai '=>-16205、'lan'=>-16202、'lang'=>-16187、'lao'=>-16180、'le'=>-16171、'lei'=>- 16169,'leng'=>-16158,'li'=>-16155,'lia'=>-15959,'lian'=> -15958,'liang'=>-15944,'liao' =>-15933,'嘘'=>-15920,'リン'=>-15915,'リン'=>-15903,'リュー'=>-15889,
'ロング'=>-15878、'lou'=>-15707、'lu'=>-15701、'lv'=>-15681、'luan'=>-15667、'lue'=>- 15661,'lun'=>-15659,'luo'=>-15652,
'ma'=>-15640, 'mai'=>-15631,'man'=> -15625,'mang'=>-15454,'mao'=>-15448,'me'=>-15436,'mei'=> ;-15435,'men'=>-15419,'meng '=>-15416、'mi'=>-15408、'mian'=>-15394、'miao'=>-15385、'mie'=>-15377、'min'=>- 15375、'明'=>-15369、'ミュウ'=>-15363、'モ'=>-15362、'モウ'=> -15183、'ム'=>-15180、
'na'=>-15165,'nai'=>-15158,'nan'=>-15153,'nang'=>-15150,'nao'=>-15149,'ne '=>-15144、'寧'=>-15143、'年'=>-15141、'年'=>-15140、'ニ'=>-15139、'年'=>- 15128,'niang'=>-15121,'niao'=>-15119,'nie'=>-15117,'nin'=>-15110,'ning'=>-15109,'niu' =>-14941,
'nong'=>-14937,'nu'=>-14933,'nv'=>-14930,'nuan'=>-14929,'nue '=>-14928,'nuo'=>-14926,
'o'=>-14922,'ou'=>-14921,
'pa'= >-14914,'pai'=>-14908,'pan'=>-14902,'pang'=>-14894,'pao'=>-14889,'pei'=>-14882, 'ペン'=>-14873、'ペン'=>-14871、'パイ'=>-14857、'ピアン'=>-14678、'ピャオ'=>-14674、'パイ'=> ;-14670,'ピン'=>-14668,'ピン'=>-14663,'ポ'=>-14654,'プ'=>-14645,
'qi'= >-14630,'qia'=>-14594,'qian'=>-14429,'qiang'=>-14407,'qiao'=>-14399,'qie'=>-14384, 'qin'=>-14379、'qing'=>-14368、'qiong'=>-14355、'qiu'=>-14353、'qu'=>-14345、'quan'=> ;-14170,'que'=>-14159,'qun'=>-14151,
'ran'=>-14149,'rang'=>-14145,'rao'= >-14140、're'=>-14137、'ren'=>-14135、'reng'=>-14125、'ri'=>-14123、'rong'=>-14122、 'rou'=>-14112、'ru'=>-14109、'ruan'=>-14099、'rui'=>-14097、'run'=>-14094、'ruo'=> ;-14092,
'さ'=>-14090,'サイ'=>-14087,'さん'=>-14083,'sang'=>-13917,'sao'= >-13914、'se'=>-13910、'sen'=>-13907、'seng'=>-13906、'sha'=>-13905、'shai'=>-13896、 'シャン'=>-13894、'シャン'=>-13878、'シャオ'=>-13870、'彼女'=>-13859、'シェン'=>-13847、'シェン'=> ;-13831,'shi'=>-13658,'shou'=>-13611,'shu'=>-13601,'shua'=>-13406,'shuai'=>-13404,' shuan'=>-13400、'shuang'=>-13398、'shui'=>-13395、'shun'=>-13391、'shuo'=>-13387、'si'=> -13383,'歌'=>-13367,'想'=>-13359,'す'=>-13356,'すあん'=>-13343,'すい'=>-13340,'sun '=>-13329,'suo'=>-13326,
'ta'=>-13318,'tai'=>-13147,'tan'=>-13138,'タン'=>-13120、'タオ'=>-13107、'テ'=>-13096、'テン'=>-13095、'ティ'=>-13091、'ティアン'=> -13076,'ティアオ'=>-13068,'ネクタイ'=>-13063,'ティング'=>-13060,'トン'=>-12888,'トウ'=>-12875,'トゥ'=>-12871,'tuan'=>-12860,'tui'=>-12858,'tun'=>-12852,'tuo'=>-12849,
' wa'=>-12838、'wai'=>-12831、'wan'=>-12829、'wang'=>-12812、'wei'=>-12802、'wen'=> -12607,'weng'=>-12597,'wo'=>-12594,'wu'=>-12585,
'xi'=>-12556,'xia'=> ;-12359,'xian'=>-12346,'xiang'=>-12320,'xiao'=>-12300,'xie'=>-12120,'xin'=>-12099,' xing'=>-12089、'xiong'=>-12074、'xiu'=>-12067、'xu'=>-12058、'xuan'=>-12039、'xue'=> -11867,'xun'=>-11861,
'ya'=>-11847,'yan'=>-11831,'yang'=>-11798,'yao'=> ;-11781,'ye'=>-11604,'yi'=>-11589,'yin'=>-11536,'ying'=>-11358,'yo'=>-11340,' yong'=>-11339、'you'=>-11324、'yu'=>-11303、'yuan'=>-11097、'yue'=>-11077、'yun'=> -11067,
'za'=>-11055,'zai'=>-11052,'zan'=>-11045,'zang'=>-11041,'zao'=> ;-11038,'ze'=>-11024,'zei'=>-11020,'zen'=>-11019,'zeng'=>-11018,'zha'=>-11014,' zhai'=>-10838、'zhan'=>-10832、'zhang'=>-10815、'zhao'=>-10800、'zhe'=>-10790、'zhen'=> -10780,'鄭'=>-10764,'志'=>-10587,'忠'=>-10544,'周'=>-10533,'朱'=>-10519,'朱華'=>-10331、'zhuai'=>-10329、'zhuan'=>-10328、'zhuang'=>-10322、'zhui'=>-10315、'zhun'=>- 10309,'zhuo'=>-10307,'zi'=>-10296,'zong'=>-10281,'zou'=>-10274,'zu'=>-10270,'zuan' =>-10262,
'zui'=>-10260,'zun'=>-10256,'zuo'=>-10254
);
public static $array1 = array('xxxx');
/**
* 中国語の文字をピンインに変換します
*
* @paramknown_type $name
*/
public static function getConvertedToPinyin($name) {
if ($charset != 'gb2312') $chinese = self::_U2_Utf8_Gb($name);
$py = self::zh_to_pys($chinese, $delimiter);
if( $length) {
$py = substr($py, 0, $length);
}
return $py;
}
/**
+------------------------------------------ ------ -------------------------------------
*すべてのピンインを取得
+---------------------------------------- -------- -----------------------------------
* @return string
+-------------------------------------- ----------- ----------------------------------
*/
public static function getAllPY($chinese, $delimiter = '', $length = 0,$charset='utf-8') {
if($charset != 'gb2312') $chinese = self::_U2_Utf8_Gb($chinese);
$py = self::zh_to_pys($chinese, $delimiter);
if($length) {
$py = substr($py, 0, $length);
}
return $py;
}
/**
+------------------------------------------ ------ -------------------------------------
*ピンインの最初の文字を取得します
+------------------------------------- ----------- ----------------------------------
* @return string
+-------------------------------------- ---------- ------------------------------
*/
public static function getFirstPY($chinese,$charset='utf-8'){
if( $charset != 'gb2312') $chinese = self::_U2_Utf8_Gb($chinese);
$result = '' ;
for ($i=0; $i $p = ord(substr($chinese,$i,1)); if ($p> <🎜) > $q = ord(substr($chinese,++$i,1)); $p = $p*256 + $q - 65536; } $result .= substr(self::zh_to_py($p),0,1); } return $result ; } $_String = ''; if($_C
public static function _U2_Utf8_Gb($_C){
$_String .= chr(0x80 | $_C>>6 & 0x3F);
$_String .= chr(0x80 | $_C & 0x3F);
} elseif($_C < 0x200000) {
$_String .= chr(0xF0 | $_C>>18);
$_String .= chr(0x80 | $_C>>12 & 0x3F);
$_String .= chr(0x80 | $_C>>6 & 0x3F);
$_String .= chr(0x80 | $_C & 0x3F);
}
return iconv('UTF-8', 'GB2312', $_String);
}
if($num>0 && $num return chr($num);
} elseif ($num<-20319||$num>-10247) {
return $blank;
}それ以外の場合{
foreach (self::$pylist as $py => $code) {
if($code > $num) Break;
$result = $py;
}
return $result;
}
}
private static function zh_to_pys($chinese, $delimiter = ' ', $first=0){
$result = array();
for($i=0; $i $p = ord(substr($chinese,$i,1)); if($p>160) { $q = ord(substr($chinese,++) $i,1)); $p = $p*256 + $q - 65536; } $result[] = self::zh_to_py($ p); if ($first) { return $result[0]; } } 戻る 爆破する($delimiter, $result); } }