• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用PHP实现汉字拼音转换和公历农历转换

php 搞代码 4年前 (2022-01-22) 41次浏览 已收录 0个评论

这篇文章主要介绍了PHP实现的汉字拼音转换和公历农历转换类及使用示例,精心整理自网上的资源,需要的朋友可以参考下

本文整理了PHP汉字拼音转换和公历农历转换两个功能类文件,非常实用。比如我们查找通讯录可以通过联系人姓名的拼音首字母来查询,可以通过首字母来导航大数据量,可以通过转换拼音来做网站优化等。公农历转化一般用在日历日程安排的项目中,方便农历的节日提醒等等。

1、PHP汉字转拼音

Pinyin.class.php类文件可以将大多数汉字转换成汉语拼音,当然也有个别生僻字不能转换,如果你想转换所有的汉字拼音的话,可能需要再配合一个汉字字库来实现,使用该类文件就基本能满足你的项目需求了。用法:

require_once("Pinyin.class.php"); $pinyin = new Pinyin(); $str = '好好学习天天向上'; echo $pinyin->strtopin($str);

执行后输出:

hao hao xue xi tian tian xiang shang。

如果只是想输出汉字首字母则使用:

echo $pinyin->strtopin($str,1);

执行后输出:

hhxxttxs。

Pinyin.class.php 源码:

<?phpclass Pinyin{ private $d = array (  array (   "a",   -20319  ),  array (   "ai",   -20317  ),  array (   "an",   -20304  ),  array (   "ang",   -20295  ),  array (   "ao",   -20292  ),  array (   "ba",   -20283  ),  array (   "bai",   -20265  ),  array (   "ban",   -20257  ),  array (   "bang",   -20242  ),  array (   "bao",   -20230  ),  array (   "bei",   -20051  ),  array (   "ben",   -20036  ),  array (   "beng",   -20032  ),  array (   "bi",   -20026  ),  array (   "bian",   -20002  ),  array (   "biao",   -19990  ),  array (   "bie",   -19986  ),  array (   "bin",   -19982  ),  array (   "bing",   -19976  ),  array (   "bo",   -19805  ),  array (   "bu",   -19784  ),  array (   "ca",   -19775  ),  array (   "cai",   -19774  ),  array (   "can",   -19763  ),  array (   "cang",   -19756  ),  array (   "cao",   -19751  ),  array (   "ce",   -19746  ),  array (   "ceng",   -19741  ),  array (   "cha",   -19739  ),  array (   "chai",   -19728  ),  array (   "chan",   -19725  ),  array (   "chang",   -19715  ),  array (   "chao",   -19540  ),  array (   "che",   -19531  ),  array (   "chen",   -19525  ),  array (   "cheng",   -19515  ),  array (   "chi",   -19500  ),  array (   "chong",   -19484  ),  array (   "chou",   -19479  ),  array (   "chu",   -19467  ),  array (   "chuai",   -19289  ),  array (   "chuan",   -19288  ),  array (   "chuang",   -19281  ),  array (   "chui",   -19275  ),  array (   "chun",   -19270  ),  array (   "chuo",   -19263  ),  array (   "ci",   -19261  ),  array (   "cong",   -19249  ),  array (   "cou",   -19243  ),  array (   "cu",   -19242  ),  array (   "cuan",   -19238  ),  array (   "cui",   -19235  ),  array (   "cun",   -19227  ),  array (   "cuo",   -19224  ),  array (   "da",   -19218  ),  array (   "dai",   -19212  ),  array (   "dan",   -19038  ),  array (   "dang",   -19023  ),  array (   "dao",   -19018  ),  array (   "de",   -19006  ),  array (   "deng",   -19003  ),  array (   "di",   -18996  ),  array (   "dian",   -18977  ),  array (   "diao",   -18961  ),  array (   "die",   -18952  ),  array (   "ding",   -18783  ),  array (   "diu",   -18774  ),  array (   "dong",   -18773  ),  array (   "dou",   -18763  ),  array (   "du",   -18756  ),  array (   "duan",   -18741  ),  array (   "dui",   -18735  ),  array (   "dun",   -18731  ),  array (   "duo",   -18722  ),  array (   "e",   -18710  ),  array (   "en",   -18697  ),  array (   "er",   -18696  ),  array (   "fa",   -18526  ),  array (   "fan",   -18518  ),  array (   "fang",   -18501  ),  array (   "fei",   -18490  ),  array (   "fen",   -18478  ),  array (   "feng",   -18463  ),  array (   "fo",   -18448  ),  array (   "fou",   -18447  ),  array (   "fu",   -18446  ),  array (   "ga",   -18239  ),  array (   "gai",   -18237  ),  array (   "gan",   -18231  ),  array (   "gang",   -18220  ),  array (   "gao",   -18211  ),  array (   "ge",   -18201  ),  array (   "gei",   -18184  ),  array (   "gen",   -18183  ),  array (   "geng",   -18181  ),  array (   "gong",   -18012  ),  array (   "gou",   -17997  ),  array (   "gu",   -17988  ),  array (   "gua",   -17970  ),  array (   "guai",   -17964  ),  array (   "guan",   -17961  ),  array (   "guang",   -17950  ),  array (   "gui",   -17947  ),  array (   "gun",   -17931  ),  array (   "guo",   -17928  ),  array (   "ha",   -17922  ),  array (   "hai",   -17759  ),  array (   "han",   -17752  ),  array (   "hang",   -17733  ),  array (   "hao",   -17730  ),  array (   "he",   -17721  ),  array (   "hei",   -17703  ),  array (   "hen",   -17701  ),  array (   "heng",   -17697  ),  array (   "hong",   -17692  ),  array (   "hou",   -17683  ),  array (   "hu",   -17676  ),  array (   "hua",   -17496  ),  array (   "huai",   -17487  ),  array (   "huan", <b>%本文@来源gao@!dai!ma.com搞$$代^@码!网</b><strong>搞代gaodaima码</strong>  -17482  ),  array (   "huang",   -17468  ),  array (   "hui",   -17454  ),  array (   "hun",   -17433  ),  array (   "huo",   -17427  ),  array (   "ji",   -17417  ),  array (   "jia",   -17202  ),  array (   "jian",   -17185  ),  array (   "jiang",   -16983  ),  array (   "jiao",   -16970  ),  array (   "jie",   -16942  ),  array (   "jin",   -16915  ),  array (   "jing",   -16733  ),  array (   "jiong",   -16708  ),  array (   "jiu",   -16706  ),  array (   "ju",   -16689  ),  array (   "juan",   -16664  ),  array (   "jue",   -16657  ),  array (   "jun",   -16647  ),  array (   "ka",   -16474  ),  array (   "kai",   -16470  ),  array (   "kan",   -16465  ),  array (   "kang",   -16459  ),  array (   "kao",   -16452  ),  array (   "ke",   -16448  ),  array (   "ken",   -16433  ),  array (   "keng",   -16429  ),  array (   "kong",   -16427  ),  array (   "kou",   -16423  ),  array (   "ku",   -16419  ),  array (   "kua",   -16412  ),  array (   "kuai",   -16407  ),  array (   "kuan",   -16403  ),  array (   "kuang",   -16401  ),  array (   "kui",   -16393  ),  array (   "kun",   -16220  ),  array (   "kuo",   -16216  ),  array (   "la",   -16212  ),  array (   "lai",   -16205  ),  array (   "lan",   -16202  ),  array (   "lang",   -16187  ),  array (   "lao",   -16180  ),  array (   "le",   -16171  ),  array (   "lei",   -16169  ),  array (   "leng",   -16158  ),  array (   "li",   -16155  ),  array (   "lia",   -15959  ),  array (   "lian",   -15958  ),  array (   "liang",   -15944  ),  array (   "liao",   -15933  ),  array (   "lie",   -15920  ),  array (   "lin",   -15915  ),  array (   "ling",   -15903  ),  array (   "liu",   -15889  ),  array (   "long",   -15878  ),  array (   "lou",   -15707  ),  array (   "lu",   -15701  ),  array (   "lv",   -15681  ),  array (   "luan",   -15667  ),  array (   "lue",   -15661  ),  array (   "lun",   -15659  ),  array (   "luo",   -15652  ),  array (   "ma",   -15640  ),  array (   "mai",   -15631  ),  array (   "man",   -15625  ),  array (   "mang",   -15454  ),  array (   "mao",   -15448  ),  array (   "me",   -15436  ),  array (   "mei",   -15435  ),  array (   "men",   -15419  ),  array (   "meng",   -15416  ),  array (   "mi",   -15408  ),  array (   "mian",   -15394  ),  array (   "miao",   -15385  ),  array (   "mie",   -15377  ),  array (   "min",   -15375  ),  array (   "ming",   -15369  ),  array (   "miu",   -15363  ),  array (   "mo",   -15362  ),  array (   "mou",   -15183  ),  array (   "mu",   -15180  ),  array (   "na",   -15165  ),  array (   "nai",   -15158  ),  array (   "nan",   -15153  ),  array (   "nang",   -15150  ),  array (   "nao",   -15149  ),  array (   "ne",   -15144  ),  array (   "nei",   -15143  ),  array (   "nen",   -15141  ),  array (   "neng",   -15140  ),  array (   "ni",   -15139  ),  array (   "nian",   -15128  ),  array (   "niang",   -15121  ),  array (   "niao",   -15119  ),  array (   "nie",   -15117  ),  array (   "nin",   -15110  ),  array (   "ning",   -15109  ),  array (   "niu",   -14941  ),  array (   "nong",   -14937  ),  array (   "nu",   -14933  ),  array (   "nv",   -14930  ),  array (   "nuan",   -14929  ),  array (   "nue",   -14928  ),  array (   "nuo",   -14926  ),  array (   "o",   -14922  ),  array (   "ou",   -14921  ),  array (   "pa",   -14914  ),  array (   "pai",   -14908  ),  array (   "pan",   -14902  ),  array (   "pang",   -14894  ),  array (   "pao",   -14889  ),  array (   "pei",   -14882  ),  array (   "pen",   -14873  ),  array (   "peng",   -14871  ),  array (   "pi",   -14857  ),  array (   "pian",   -14678  ),  array (   "piao",   -14674  ),  array (   "pie",   -14670  ),  array (   "pin",   -14668  ),  array (   "ping",   -14663  ),  array (   "po",   -14654  ),  array (   "pu",   -14645  ),  array (   "qi",   -14630  ),  array (   "qia",   -14594  ),  array (   "qian",   -14429  ),  array (   "qiang",   -14407  ),  array (   "qiao",   -14399  ),  array (   "qie",   -14384  ),  array (   "qin",   -14379  ),  array (   "qing",   -14368  ),  array (   "qiong",   -14355  ),  array (   "qiu",   -14353  ),  array (   "qu",   -14345  ),  array (   "quan",   -14170  ),  array (   "que",   -14159  ),  array (   "qun",   -14151  ),  array (   "ran",   -14149  ),  array (   "rang",   -14145  ),  array (   "rao",   -14140  ),  array (   "re",   -14137  ),  array (   "ren",   -14135  ),  array (   "reng",   -14125  ),  array (   "ri",   -14123  ),  array (   "rong",   -14122  ),  array (   "rou",   -14112  ),  array (   "ru",   -14109  ),  array (   "ruan",   -14099  ),  array (   "rui",   -14097  ),  array (   "run",   -14094  ),  array (   "ruo",   -14092  ),  array (   "sa",   -14090  ),  array (   "sai",   -14087  ),  array (   "san",   -14083  ),  array (   "sang",   -13917  ),  array (   "sao",   -13914  ),  array (   "se",   -13910  ),  array (   "sen",   -13907  ),  array (   "seng",   -13906  ),  array (   "sha",   -13905  ),  array (   "shai",   -13896  ),  array (   "shan",   -13894  ),  array (   "shang",   -13878  ),  array (   "shao",   -13870  ),  array (   "she",   -13859  ),  array (   "shen",   -13847  ),  array (   "sheng",   -13831  ),  array (   "shi",   -13658  ),  array (   "shou",   -13611  ),  array (   "shu",   -13601  ),  array (   "shua",   -13406  ),  array (   "shuai",   -13404  ),  array (   "shuan",   -13400  ),  array (   "shuang",   -13398  ),  array (   "shui",   -13395  ),  array (   "shun",   -13391  ),  array (   "shuo",   -13387  ),  array (   "si",   -13383  ),  array (   "song",   -13367  ),  array (   "sou",   -13359  ),  array (   "su",   -13356  ),  array (   "suan",   -13343  ),  array (   "sui",   -13340  ),  array (   "sun",   -13329  ),  array (   "suo",   -13326  ),  array (   "ta",   -13318  ),  array (   "tai",   -13147  ),  array (   "tan",   -13138  ),  array (   "tang",   -13120  ),  array (   "tao",   -13107  ),  array (   "te",   -13096  ),  array (   "teng",   -13095  ),  array (   "ti",   -13091  ),  array (   "tian",   -13076  ),  array (   "tiao",   -13068  ),  array (   "tie",   -13063  ),  array (   "ting",   -13060  ),  array (   "tong",   -12888  ),  array (   "tou",   -12875  ),  array (   "tu",   -12871  ),  array (   "tuan",   -12860  ),  array (   "tui",   -12858  ),  array (   "tun",   -12852  ),  array (   "tuo",   -12849  ),  array (   "wa",   -12838  ),  array (   "wai",   -12831  ),  array (   "wan",   -12829  ),  array (   "wang",   -12812  ),  array (   "wei",   -12802  ),  array (   "wen",   -12607  ),  array (   "weng",   -12597  ),  array (   "wo",   -12594  ),  array (   "wu",   -12585  ),  array (   "xi",   -12556  ),  array (   "xia",   -12359  ),  array (   "xian",   -12346  ),  array (   "xiang",   -12320  ),  array (   "xiao",   -12300  ),  array (   "xie",   -12120  ),  array (   "xin",   -12099  ),  array (   "xing",   -12089  ),  array (   "xiong",   -12074  ),  array (   "xiu",   -12067  ),  array (   "xu",   -12058  ),  array (   "xuan",   -12039  ),  array (   "xue",   -11867  ),  array (   "xun",   -11861  ),  array (   "ya",   -11847  ),  array (   "yan",   -11831  ),  array (   "yang",   -11798  ),  array (   "yao",   -11781  ),  array (   "ye",   -11604  ),  array (   "yi",   -11589  ),  array (   "yin",   -11536  ),  array (   "ying",   -11358  ),  array (   "yo",   -11340  ),  array (   "yong",   -11339  ),  array (   "you",   -11324  ),  array (   "yu",   -11303  ),  array (   "yuan",   -11097  ),  array (   "yue",   -11077  ),  array (   "yun",   -11067  ),  array (   "za",   -11055  ),  array (   "zai",   -11052  ),  array (   "zan",   -11045  ),  array (   "zang",   -11041  ),  array (   "zao",   -11038  ),  array (   "ze",   -11024  ),  array (   "zei",   -11020  ),  array (   "zen",   -11019  ),  array (   "zeng",   -11018  ),  array (   "zha",   -11014  ),  array (   "zhai",   -10838  ),  array (   "zhan",   -10832  ),  array (   "zhang",   -10815  ),  array (   "zhao",   -10800  ),  array (   "zhe",   -10790  ),  array (   "zhen",   -10780  ),  array (   "zheng",   -10764  ),  array (   "zhi",   -10587  ),  array (   "zhong",   -10544  ),  array (   "zhou",   -10533  ),  array (   "zhu",   -10519  ),  array (   "zhua",   -10331  ),  array (   "zhuai",   -10329  ),  array (   "zhuan",   -10328  ),  array (   "zhuang",   -10322  ),  array (   "zhui",   -10315  ),  array (   "zhun",   -10309  ),  array (   "zhuo",   -10307  ),  array (   "zi",   -10296  ),  array (   "zong",   -10281  ),  array (   "zou",   -10274  ),  array (   "zu",   -10270  ),  array (   "zuan",   -10262  ),  array (   "zui",   -10260  ),  array (   "zun",   -10256  ),  array (   "zuo",   -10254  ) ); function g($num) {  if ($num > 0 && $num < 160) {   return chr($num);  }  elseif ($num < -20319 || $num > -10247) {   return "";  } else {   for ($i = count($this->d) - 1; $i >= 0; $i--) {    if ($this->d[$i][1] <= $num)     break;   }   return $this->d[$i][0];  } } function c($str) {  $ret = "";  for ($i = 0; $i < strlen($str); $i++) {   $p = ord(substr($str, $i, 1));   if ($p > 160) {    $q = ord(substr($str, ++ $i, 1));    $p = $p * 256 + $q -65536;   }   $ret .= $this->g($p);  }  $ret = substr($ret, 0, 1);  return $ret; } function f($str) {  $ret = "";  for ($i = 0; $i < strlen($str); $i++) {   $p = ord(substr($str, $i, 1));   if ($p > 160) {    $q = ord(substr($str, ++ $i, 1));    $p = $p * 256 + $q -65536;   }   $ret .= $this->g($p);  }  return $ret; } /* PHP截取UTF-8编码的中英文字符串 */ function utf8_substr($str, $from, $len) {  return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $from . '}' . '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $len . '}).*#s', '$1', $str); } /* 将中英文字符串转换成拼音 */ function strtopin($chinese,$type=0) {  $i = 0;  $pinyin = "";  $arr = array ();  while (1) {   $str = $this->utf8_substr($chinese, $i, 1);   if (!empty ($str)) {    $arr[$i] = $str;    $str = iconv("utf-8", "gb2312", $str);    if($type==1){ //转换成首字母     $pinyin .= $this->c($str);    }else{     //转换成全拼     $pinyin .= $this->f($str)." ";    }    $i = $i +1;   } else    break;  }  return $pinyin; }}?>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用PHP实现汉字拼音转换和公历农历转换

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址