php 汉字转成拼音代码_PHP教程
function utf82gb($utfstr){ // UTF-8汉字转GBK汉字
if(function_exists('iconv')){ return iconv('utf-8','gbk',$utfstr); }
global $UC2GBTABLE;
$okstr = "";
if(trim($utfstr)=="") return $utfstr;
if(empty($UC2GBTABLE)){
$filename = dirname(__FILE__) . "/gb2312-utf8.table";
$fp = fopen($filename,"r");
while($l = fgets($fp,15))
{ $UC2GBTABLE[hexdec(substr($l, 7, 6))] = hexdec(substr($l, 0, 6));}
fclose($fp);
}
$okstr = "";
$ulen = strlen($utfstr);
for($i=0;$i {
$c = $utfstr[$i];
$cb = decbin(ord($utfstr[$i]));
if(strlen($cb)==8){
$csize = strpos(decbin(ord($cb)),"0");
for($j=0;$j $i++; $c .= $utfstr[$i];
}
$c = utf82u($c);
if(isset($UC2GBTABLE[$c])){
$c = dechex($UC2GBTABLE[$c]+0x8080);
$okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3]));
}
else
{ $okstr .= "".$c.";";}
}
else $okstr .= $c;
}
$okstr = trim($okstr);
return $okstr;
}
function SpGetPinyin($str,$ishead=0,$isclose=1){ // GBK汉字转拼音
global $pinyins;
$restr = "";
$str = trim($str);
$slen = strlen($str);
if($slen if(count($pinyins)==0){
$fp = fopen(dirname(__FILE__) . '/pinyin.db',"r");
while(!feof($fp)){
$line = trim(fgets($fp));
$pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);
}
fclose($fp);
}
for($i=0;$i if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c])){
if($ishead==0) $restr .= $pinyins[$c];
else $restr .= $pinyins[$c][0];
}else $restr .= "_";
}else if( eregi("[a-z0-9]",$str[$i]) ){ $restr .= $str[$i]; }
else{ $restr .= "_"; }
}
if($isclose==0) unset($pinyins);
return $restr;
}
function getPinyin($string){ // UTF-8汉字转拼音
return SpGetPinyin(utf82gb($string));
}
echo getPinyin("中国WEB第一站");
?>
推荐阅读
-
Uchome1.2 1.5 代码学习 common.php_PHP教程
-
php图片缩放代码-按比例缩放或截取指定大小的缩略图 非常好用的一个方法_PHP教程
-
PHP中输出转义JavaScript代码的实现代码_PHP教程
-
解析引起PHP代码错误的情况分析_PHP教程
-
PHP curl伪造IP地址和header信息代码实例_PHP教程
-
PHP 实现了一种代码复用的方法,称为 trait,复用trait_PHP教程
-
PHP获取当前页面完整URL的实现代码_PHP教程
-
PHP中使用crypt()实现用户身份验证的代码_PHP教程
-
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)_PHP教程
-
php识别微信客户端并且使用html静态页面引导用户使用浏览器打开这个页面(代码实现教程)