下面有三个函数对应的是取汉字码,与转换成相对就的拼音,我们的实例是简单的,只举了a开头的汉字转换拼音的实例代码.
- $piny = array(
- 'a'=>-20319,
- 'ai'=>-20317,
- 'an'=>-20304,
- 'ang'=>-20295
- );
- echo getChineseSpells('中国WEB第一站 www.phpfensi.com');
-
- function getChineseSpells($chinese, $delimiter = ' ', $first=0)
- {
- $result = array();
- for ($i=0; $i<strlen($chinese); $i++) {
- $p = ord(substr($chinese,$i,1));
- if ($p>160) {
- $q = ord(substr($chinese,++$i,1));
- $p = $p*256 + $q - 65536;
- }
- $result[] = getChineseSpell($p);
- if ($first) {
- return $result[0];
- }
- }
- return implode($delimiter, $result);
- }
-
-
- function getChineseSpell ($num, $blank = '') {
- if ( $num>0 && $num<160 ) {
- return chr($num);
- } elseif ($num<-20319||$num>-10247) {
- return $blank;
- } else {
- foreach (chineseSpellList as $spell => $code) {
- if ($code > $num) break;
- $result = $spell;
- }
- return $result;
- }
- }
-
-
- function getFirstSpell($chinese, $length = 0) {
- $spell =getChineseSpells($chinese, ' ', 1);
- if ($length) {
- $spell = substr($spell, 0, $length);
- }
- return $spell;
- }
|