从dedecms里面分离出来的php汉字转拼音函数!
作者:admin 日期:2010-04-13
function pinyin($str)
{
$pinyins = Array();
$restr = '';
$str = trim($str);
$slen = strlen($str);
if($slen<2)
{
return $str;
}
if(count($pinyins)==0)
{
$fp = fopen('./data/pinyin.dat','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<$slen;$i++)
{
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c]))
{
$restr .= $pinyins[$c];
}else
{
$restr .= "_";
}
}else if( eregi("[a-z0-9]",$str[$i]) )
{
$restr .= $str[$i];
}
else
{
$restr .= "_";
}
}
return $restr;
}
{
$pinyins = Array();
$restr = '';
$str = trim($str);
$slen = strlen($str);
if($slen<2)
{
return $str;
}
if(count($pinyins)==0)
{
$fp = fopen('./data/pinyin.dat','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<$slen;$i++)
{
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c]))
{
$restr .= $pinyins[$c];
}else
{
$restr .= "_";
}
}else if( eregi("[a-z0-9]",$str[$i]) )
{
$restr .= $str[$i];
}
else
{
$restr .= "_";
}
}
return $restr;
}
评论: 0 | 引用: 0 | 查看次数: 4660
发表评论
广告位