1. 云栖社区>
  2. PHP教程>
  3. 正文

把汉字转化为拼音,(最笨也是最准确的办法)

作者:用户 来源:互联网 时间:2017-12-01 11:36:08

汉字拼音办法化为

把汉字转化为拼音,(最笨也是最准确的办法) - 摘要: 本文讲的是把汉字转化为拼音,(最笨也是最准确的办法),        在网上找了很多很多把汉字转化为拼音的代码,结果都不是很好使,缺字与错字现象很多,干脆自己搞一个吧,用了一个最笨最笨的办法,建立了一个数组,为每一个汉字设置一个读音,找了几万字的小说做试验,应该是没有丢落的了,2013年3月9


       在网上找了很多很多把汉字转化为拼音的代码,结果都不是很好使,缺字与错字现象很多,干脆自己搞一个吧,用了一个最笨最笨的办法,建立了一个数组,为每一个汉字设置一个读音,找了几万字的小说做试验,应该是没有丢落的了,2013年3月9日有更新,所有GB2312的字符均已经验证过。      网上很多所谓的汉字转拼音都是根据GB2312编码进行识别的,GB2312编码规则如下:

16-55区为一级汉字,按拼音排序。56-87区为二级汉字,按部首/笔画排序。88-94区则未有编码规则。因此他们的办法识别出的56-94区的汉字识别的读音要么没有,要么是错误的。(汉字列表来源于http://wenku.baidu.com/view/6487c111f18583d0496459b5.html此表上的汉字标注不全,有增加部分,感谢此文档作者)
<?php
/**
* 本文作者:[email protected]
* 获取一个汉字的拼音
* 用法如下:
* 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;
}
?>

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索汉字 , 拼音 , 办法 , 化为 ,以便于您获取更多的相关知识。