php把汉字转换成拼音代码

下面有三个函数对应的是取汉字码,与转换成相对就的拼音,我们的实例是简单的,只举了a开头的汉字转换拼音的实例代码.

  1. $piny = array(
  2. 'a'=>-20319,
  3. 'ai'=>-20317,
  4. 'an'=>-20304,
  5. 'ang'=>-20295
  6. );
  7. echo getChineseSpells('中国WEB第一站 www.phpfensi.com');
  8. //取汉字所有拼音
  9. function getChineseSpells($chinese, $delimiter = ' ', $first=0)
  10. {
  11. $result = array();
  12. for ($i=0; $i<strlen($chinese); $i++) {
  13. $p = ord(substr($chinese,$i,1));
  14. if ($p>160) {
  15. $q = ord(substr($chinese,++$i,1));
  16. $p = $p*256 + $q - 65536;
  17. }
  18. $result[] = getChineseSpell($p);
  19. if ($first) {
  20. return $result[0];
  21. }
  22. }
  23. return implode($delimiter, $result);
  24. }
  25. //取一个汉字码对应的拼音
  26. function getChineseSpell ($num, $blank = '') {
  27. if ( $num>0 && $num<160 ) {
  28. return chr($num);
  29. } elseif ($num<-20319||$num>-10247) {
  30. return $blank;
  31. } else {
  32. foreach (chineseSpellList as $spell => $code) {
  33. if ($code > $num) break;
  34. $result = $spell;
  35. }
  36. return $result;
  37. }
  38. }
  39. //功能,取汉字第一个拼音
  40. function getFirstSpell($chinese, $length = 0) {
  41. $spell =getChineseSpells($chinese, ' ', 1);
  42. if ($length) {
  43. $spell = substr($spell, 0, $length);
  44. }
  45. return $spell;
  46. }