Red de conocimiento informático - Aprendizaje de programación - PHP chino a pinyin con capitalización

PHP chino a pinyin con capitalización

función?getfirstchar($s0){

$fchar?=?ord($s0{0});

if($fchar ?>=?ord("A")?and?$fchar?<=?ord("z") ?) return?strtoupper($s0{0});

$s1?=? iconv("UTF-8", "gb2312",? $s0);

$s2?=?iconv("gb2312", "UTF-8",? $s1);

if($s2?==? $s0){$s?=?$s1;}else{$s?=?$s0;}

$asc?=?ord($ s{0})?*?256?+?ord($s{1})?-?65536;

if($asc?>=? -20319?and?$asc?<= ? -20284)?return?"A";

if($asc?>=? -20283?and?$asc?<=? -19776)?return?"B";

if($asc?>=? -19775?y?$asc?<=? -19219)?return?"C";

if($asc?>=? -19218 ?y?$asc?<=? -18711)?return?"D";

if($asc?>=? -18710?y?$asc?<=? -18527)?return ?"E";

if($asc?>=? -18526?y?$asc?<=? -18240)?return?"F";

if( $asc?>=? -18239?y?$asc?<=? -17923)?return?"G";

if($asc?>=? -17922?y?$asc? <=? -17418)?return?"H";

if($asc?>=? -17417?and?$asc?<=? -16475)?return?"J";

if($asc?>=? -16474?y?$asc?<=? -16213)?return?"K";

if($asc?>=? -16212?y?$asc?<=? -15641)?return?"L";

if($asc?>=? -15640?y?$asc?<=? -15166) ?return?"M";

if($asc?>=? -15165?and?$asc?<=? -14923)?return?"N";

if($asc?>=? -14922?y?$asc?<=? -14915)?return?"O";

if($asc?>=? -14914?y?$ ¿asc?<=? -14631)?return?"P";

if($asc?>=? -14630?y?$asc?<=? -14150)?return?"Q" ;

si($asc?>=? -14149?y?$asc?<=? -14091)?return?"R";

si($asc?> =? -14090?y?$asc?<=?

13319)?return?"S";

if($asc?>=? -13318?and?$asc?<=? -12839)?return?"T";

if($asc?>=? -12838?y?$asc?<=? -12557)?return?"W";

if($asc?>=? -12556?y ?$asc?<=? -11848)?return?"X";

if($asc?>=? -11847?and?$asc?<=? -11056)?return?" Y";

if($asc?>=? -11055?y?$asc?<=? -10247)?return?"Z";

return?null;

}

función?2',?3'?=>?3',?4'?=>?5'? ?6'? =>?6',?' 7'? =>?7'? =>?8'? ',?B'? =>?B',?C'? =>?C',?D'? =>?D',?E'? ',?G'? =>?G',?H'? =>?H',?' ?K',?L'? =>?L',?M'? =>?M',?N'? =>?N',?O'? =>?O',?P'? ?P',?'Q'? =>?Q',?'R'? =>?R',?'S'? =>?S',?T'? ? =>?U',?V'? =>?V',?W'? =>?W',?'X'? ' =>?Z',? a'? =>? ? =>? e',?' h',? 'j'? =>? j',?' =>? , o' => o', p' => p', q' => q', r' => r', s' => s', t' => t', u'?t', u ' => u', v' => v', w' => w', x' => x', y' => y', z' => z',?(z' =>?(' ,??')' =>?')',?' ['? =>?' [',?']' ? =>?']',?''=>?['', ['' ? =>?'']'['', ''['', ''['']''['? =>?['',? '〗' =>?']'['' ,'']'''? =>?'"',?'"' ? =>?'"',?'''''? =>?''\'',?'''=> ? \'',?''{=> ?{',?'}' =>?'

}',?'''? =>?'',?'''=>? >',?''%'?%',?+'? =>?+',?'+',?' -'? =>?-',?' -'?-? =>?',?' ,?','?,'?','?' ' ,?' !' ? => ?!',? 〃'? =>?'"'n=>??') ;

return?strtr($str,? $arr);

}

función?pinyin1($zh){

$zh?=?make_semiangle($zh);

$ret?=?""

$; s1?=?iconv("UTF-8", "gb2312",? $zh);

$s2?=?iconv("gb2312", "UTF-8",? $s1);

si($s2?==? $zh){$zh?=?$s1;}

para($i?=?0;?$i?

$s1?=?substr($zh,$i,1);

$p?=?ord($s1 );

if($p?>?160){

$s2?=?substr($zh,$i++,2);

$ ret?=?getfirstchar($s2);

}else{

$ret.=?$s1;

}

}

return?$ret;

}

//Uso

echo?pinyin1('Los chinos obtienen la primera letra en mayúscula,' admite 'conversión de esquina completa') > Baidu convierte automáticamente los números de esquina completa y el inglés. Si es necesario, descargue el código fuente en el archivo adjunto

.