¿Cómo obtener la primera letra de un carácter chino usando pinyin en php?
// Caracteres chinos a pinyin (no se admiten caracteres raros) )
función(){ echo?$this->utf8_to("Soy chino");
}
/**
*?La siguiente es la conversión de chino a Pinyin
*?@param?$s
*?@param?bool?$isfirst
*? @return string
*/
función estática pública utf8_to($s, $isfirst = false)?{
return:self::to (self: :utf8_too_gb2312($s),? $isfirst);
}
¿público?{
¿retorno? La cadena debe usar codificación GB2312 p>
¿public?static?function?to($s, $isfirst?=?false)?{
$res?=?'' ;
$len? =?strlen ($s);
$pinyin_arr?=?self::get_pinyin_array();
for($i=0;? $i<$len;? $ i++)? {
$ascii?=?ord($s{$i});
if($ascii?>?0x80)?{
$ascii2 ?=?ord($s{++$i});
$ascii?=?$ascii?*?256?+? $ascii2?-?65536;
}
si($ascii?255?&&? $ascii?>?0)?{
si(($ascii?>=?48?&& ? $ascii ?<=?57)?||?($ascii?>=?97?&&? $ascii?<=?122)?{
$res?$s{$i} ;?/ /?0-9?a-z
}elseif($ascii?>=?65?&&? $ascii?<=?90)?{
$res? =?strtolower ($s{$i});?//?A-Z
}else{
$res?_';
} p>
}elseif($ascii? -20319?||? $ascii?>? -10247)?{
$res?_';
} else{
foreach($pinyin_arr?as?$py=>$asc)?{
if($asc?<=? $ascii)?{
$ res?$isfirst$py{0}? :?$py;
romper;
}
}
} p>
}
}
retorno?$res;
}
¿función?pública?estática? to_first($ s)?{
$ascii?=?o
d($s{0});
if($ascii?>?0xE0)?{
$s?=?self::utf8_too_gb2312($s{0}. $s{1}. $s{2});
}elseif($ascii?0x80)?{
if($ascii?>=?65?&& ? $ascii?<=?90)?{
return?strtolower($s{0});
}elseif($ascii?>=?97?&&? $ ¿ascii?<=?122)?{
return?$s{0};
}else{
return?false;
}
}
}
}
if(strlen($s)? 2)?{ p>
return?false;
}
$asc?=?ord($s{0})?*?256?+?ord($s{1 })?-?65536;
if($asc>=-20319?&&? $asc<=-20284)?return?'a';
si($asc >=-20283?&&? $asc<=-19776)?return?'b';
if($asc>=-19775?&&? $asc<=-19219)?return?' c';
if($asc>=-19218?&&?$asc<=-18711)?return?'d';
if($asc>=-18710 ?&&?$asc<=-18527)?return?return?'f';
if($asc>=-18239?&&?$asc<=-17923)?return?'g' ;
if($asc>=-17922?&&?$asc<=-17418)?return?return?'j';
if($asc>=-16474 ?&&? $asc<=-16213)?return?'k';
if($asc>=-16212?&&? $asc<=-15641)?return?'l';
if($asc>=-15640?&&? $asc<=-15166)?return?'m';
if($asc>=-15165?&&?$ asc<=-14923)?return?'n';
if($asc>=-14922?&&?$asc<=-14915)?return?'p';
if($asc>=-14630?&&?$asc<=-14150)?return?'q';
if($asc>=-14149?&&?$asc<=- 14091)?return?'s';
if($asc>=-13318?&&?$asc<=-12839)?return?'x';
if( $asc>=-11847?&&? $asc<=-11056)?return?'y';
p>
if($asc>=-11055?&&? $asc<=-10247)?return?'z';
return?false;
}
¿público?{
estático?$py_arr;
if(isset($py_arr))?return?$py_arr;
$ k?=?' |can|cang|cao|ce|ceng|cha|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chui|chun|chuo|ci|cong |cou|cu|cuan|cui|cun|cuo|da|dai|dan|dang|dao|de|deng|di|dian|dang|dao|dedeng|di|dian|diao|die|ding|diu|ddong |dou|du|duan|dui|dun|duo|e|en|er|fa|fan|fang|fei|fen|feng|fo|fou|fu|ga|gai|gan|gang|gao|ge|gei |gengen|geng|gong|gou|gu|gua|guai|guan|guang|gui|gun|guo|ha|hai|han|hang|hao|he|hei|hen|heng|hong|hou|hu|hua |huai|huan|huang|hui|hunhuo|ji|jia|jian|jiang|jiao|jie|jin|jing|jiong|jiu|ju|juan|jue|jun|ka|kai|kan|kang|kao|ke |ken|keng|kong|kou|ku|kua|kuai|kuan|kuang|...kui|kun|kuo|kui|kun|kuo|la|lai|lan|lang|lao|le|lei|leng| li|lia|lian|liang|liao|lie|lin|ling|liu|long|lou|lu|lv|luan|lue|lun|luo|ma|mai|man|Hombre|Mao|Mei|Hombres|Hombre| Arroz|Mian|Miao|Mi|民|明|Miao|Mo|Mao|Madera|na|nai|nan|nang|nao|nei|neen|neng|ni|nian|niang|niao|nnie|ninqin|Qing | qiong|otoño|qu|quan|que|qun|ran|rao|ren|礽|日|永|如|ruan|rui|run|ruo|sa|sai|shan|mulberry|shao|世|成|沙| sha|shai|shan|shang|sha|shai|shan|shang|shao|she|shen|sheng|shi|shou|shu|shua|shuai|shuan|shuang|shui|shun|shuo|si|song|sou | su|suan|sui|sol|suo|ta|tai|tan|Tang|Tao|Ting|Tian|Diao|Ti|Ting|Tong|Tou|Tuen|Tuen|Tuo|Agua|Wan |wang|wei|wen| weng|wu|xi|xia|condado|municipio|xiao|xie|xin|xing|xiong|xiu|xuan|xue|xun|elegante|yao|yi|ying|yao |Yong|Amigo|Yu|Yue|Yun| Zha|Zhai|Zan|Zang|Ze|Ze|Zeng|Zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|zhou |zhu|zhua|zhuai|zhuan|zhua
ng|zhui|zhun|zhuo|zi|zong|zou|zu|zuan|zui|zun|zuo";
$v?=?' -20292|-20283|-20265|-20257|-20242|-20230|-20051|-20036|-20032|-20026|-20002|-19990|-19986|-19982|- 19976|-19805|-19784 |-19775|-19774|-19763|-19756|-19751|-19746|-19741|-19739|-19728|-19725|-19715|-19540|-19531|-19525|-19515|- 19500|- 19484|-19479|-19467|-19289|-19288|-19281|-19275|-19270|-19263|-19261|-19249|-19243|-19242|-19238|-19235|-19227|-19224| - 19218|-19212|-19038|-19023|-19018|-19006|-19003|-18996|-18977|-18961|-18952|-18783|-18774|-18773|-18763|-18756|-18741 |-18735|- 18731|-18722|-18710|-18697|-18696|-18526|-18518|-18501|-18490|-18478|-18463|-18448|-18447|-18446|-18239|- 18237|-18231|-18220|- 18211|-18201|-18184|-18183|-18181|-18012|-17997|-17988|-17970|-17964|-17961|-17950|-17947|-17931| -17928|-17922|-17759|-17752|- 17733|-17730|-17721|-17703|-17701|-17697|-17692|-17683|-17676|-17496|-17487|-17482|-17468 |-17454|-17433|-17427|-17417|-17202|- 17185|-16983|-16970|-16942|-16915|-16733|-16708|-16706|-16689|-16664|-16657|- 16647|-16474|-16470|-16465|-16459|-16452|-16448|-16448|- 16433|-16429|-16427|-16423|-16419|-16412|-16407|-16403|-16401| -16393|-16220|-16216|-16212|-16205|-16202|-16187|-16180|-16171|- 16169|-16158|-16155|-15959|-15958|-15944|-15933|-15920 |-15915|-15903|-15889|-15878|-15707|-15701|-15681|-15667|-15661|-15659|-15659 15652|-15640|-15631|-15625|-15454|-15448| -15436|-15435|-15419|-15416|-15408|-15394|-15385|-15377|-15375|-15369|-15363|-15362|-15183|-15180|-15180|-15667
|-15661|-15659|- 15183|-15180|-15165|-15158|-15153|-15150|-15149|-15144|-15143|-15141|-15140|-15139|-15128|-15121|- 15119|-15117|-15110|-15941|-14937|-15109|-15109 14941|-14937|-14933|-14930|-14929|-14928|-14926|-14922|-14921|-1491 4 |- 14908|-14902|-14894|-14889|-14882|-14873|-14871|-14857|- 14678|-14674|-14670|-14668|-14663|-14654|-14645|-14630|- 14594| -14429|-14407|-14399|-14384|-14379|-14368|-14355|-14353|-14345|- 14170|-14159|-14151|-14149|-14145|-14140|-14137| |-14125|-14123|-14122|-14112|-14109|-14099|-14097|-14094|-14092|-14090|- 14087|-14083|-13917|-13914|-13910|-13907 |- 13906|-13905|-13896|-13894|-13878|-13870|-13859|-13847|-13831|-13658|-13611|-13601|- 13406|-13404|-13400|-13398|- 13395| -13391|-13387|-13383|-13367|-13359|-13356|-13343|-13340|-13329|-13326|-13318|-13147|-13138|- 13120|-13107|-13096| |-13091|-13076|-13068|-13063|-13060|-12888|-12875|-12871|-12860|-12858|-12852|-12849|-12838|-12831|- 12829|-12812 |- 12802|-12607|-12597|-12594|-12585|-12556|-12359|-12346|-12320|-12300|-12120|-12099|-12089|-12074|-12067|-12058|- 12039| -11867|-11861|-11847|-11831|-11798|-11781|-11604|-11589|-11536|-11358|-11340|-11339|-11324|-11303|-11097|-11077| |- 11055|-11052|-11045|-11041|-11038|-11024|-11020|-11019|-11018|-11014|-10838|-10832|-10815|-10800|-10790|-10780 |- 10764|-10587|-10544|-10533|-10587|-10790|-10740|-11339|-11324|-11303|-11097|-11077|-11067|- 10544|-10533|-10519|- 10331| -10329|-10328|-10322|-10315|-10309|-10307|-10296|-10281|-10274|-10270|-10262|-10260
|-10256|-10254';
$key?=?explode('|',?$k);
$val?=?explode('|',? $v);
$py_arr?=?array_combine($key,?$val);
arsort($py_arr);
retorno? p>