把汉字转化为拼音,(最笨也是最准确的办法)
在网上找了很多很多把汉字转化为拼音的代码,结果都不是很好使,缺字与错字现象很多,干脆自己搞一个吧,用了一个最笨最笨的办法,建立了一个数组,为每一个汉字设置一个读音
在网上找了很多很多把汉字转化为拼音的代码,结果都不是很好使,缺字与错字现象很多,干脆自己搞一个吧,用了一个最笨最笨的办法,建立了一个数组,为每一个汉字设置一个读音,找了几万字的小说做试验,应该是没有丢落的了,2013年3月9日有更新,所有GB2312的字符均已经验证过。
网上很多所谓的汉字转拼音都是根据GB2312编码进行识别的,GB2312编码规则如下:
网上很多所谓的汉字转拼音都是根据GB2312编码进行识别的,GB2312编码规则如下:
16-55区为一级汉字,按拼音排序。
56-87区为二级汉字,按部首/笔画排序。
88-94区则未有编码规则。
因此他们的办法识别出的56-94区的汉字识别的读音要么没有,要么是错误的。
(汉字列表来源于http://wenku.baidu.com/view/6487c111f18583d0496459b5.html
此表上的汉字标注不全,有增加部分,感谢此文档作者)
因此他们的办法识别出的56-94区的汉字识别的读音要么没有,要么是错误的。
(汉字列表来源于http://wenku.baidu.com/view/6487c111f18583d0496459b5.html
此表上的汉字标注不全,有增加部分,感谢此文档作者)
<?php /** * 本文作者:chinesehero@163.com * 获取一个汉字的拼音 * 用法如下: * include('Pinyin.php'); * echo getPinyin("你好,吃了吗?"); */ function getPinyin($keyWord) { $hz['腌']="yan"; $hz['嗄']="a"; $hz['迫']="po"; $hz['捱']="ai"; $hz['艾']="ai"; //此处省略6900余字 $hz['蜱']="pi"; $hz['螋']="sou"; $hz['螗']="tang"; $hz['螵']="piao"; $hz['蟛']="peng"; $result=""; $charArray=str_split_php5_utf8($keyWord); foreach($charArray as $char){ if(!empty($hz[$char])){ $result= $result.$hz[$char]; } else { $result= $result.$char; } } return $result; } function str_split_php5_utf8($str) { // place each character of the string into and array $split=1; $array = array(); for ( $i=0; $i < strlen( $str ); ){ $value = ord($str[$i]); if($value > 127){ if($value >= 192 && $value <= 223) $split=2; elseif($value >= 224 && $value <= 239) $split=3; elseif($value >= 240 && $value <= 247) $split=4; }else{ $split=1; } $key = NULL; for ( $j = 0; $j < $split; $j++, $i++ ) { $key .= $str[$i]; } array_push( $array, $key ); } return $array; } ?>
- 上一篇:php判断xss攻击
- 下一篇:PHP【灵异事件】之“闹鬼”
精彩图集
精彩文章