獲取中文的拼音代碼
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; } } 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 >> 12 & 0x3F); $string .= chr(0x80 | $c >> 6 & 0x3F); $string .= chr(0x80 | $c & 0x3F); } return iconv('UTF-8', 'GB2312', $string); } } ?>