<?
function SpGetPinyin($str,$ishead=0)
{
$restr = '';
$str = trim($str);
$slen = strlen($str);
if($slen<2)
{
return $str;
}
$fp = fopen('./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]))
{
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 .= "_";
}
}
return $restr;
}
echo SpGetPinyin("张曼玉"); // zhangmanyu
echo SpGetPinyin("张曼玉",1); //zmy
来源于 dedecms \include\inc\inc_fun_funAdmin.php