Get phonetic codes for Chinese
--> 160) {$_q = Ord (substr ($chinese, + + $i, 1));
$_p = $_p * 256 + $_q-65536;
$result. = ($ucfirst Ucfirst (Self::_pinyin ($_p, $data)): Self::_pinyin ($_p, $data));
Return Preg_replace ("/[^a-z0-9]*/i", "", $result);
private static function _pinyin ($num, $data) {if ($num > 0 && $num < 160) return Chr ($num);
ElseIf ($num < -20319 $num > -10247) return ";
else {foreach ($data as $k => $v) {if ($v <= $num) break;
return $k;
The private static function _u2_utf8_gb ($c) {$string = ';
if ($c < 0x80) $string. = $c;
ElseIf ($c < 0x800) {$string. = Chr (0xc0 $c >> 6);
$string. = Chr (0x80 $c & 0x3F);
} elseif ($c < 0x10000) {$string. = Chr (0xe0 $c >> 12);
$string. = Chr (0x80 $c >> 6 & 0x3F);
$string. = Chr (0x80 $c & 0x3F);
} elseif ($c < 0x200000) {$string. = Chr (0xF0 $c >> 18); $string. = Chr (0x80 $c >> & 0x3F);
$string. = Chr (0x80 $c >> 6 & 0x3F);
$string. = Chr (0x80 $c & 0x3F);
Return Iconv (' UTF-8 ', ' GB2312 ', $string); }}?>