Heim  >  Artikel  >  php教程  >  从dedecms上拿下来的汉字转拼音函数

从dedecms上拿下来的汉字转拼音函数

WBOY
WBOYOriginal
2016-06-07 11:45:001156Durchsuche

能实现常用汉字的转换,生僻汉字会被替换成下划线_
需要一个拼音库,跟脚本放在同一目录下,在附件里。
<?php <br /> //示例<br> echo GetPinyin("魍魉");<br> <br> /**<br>  * 汉字转拼音<br>  * @param string $str 待转换的字符串<br>  * @param string $charset 字符串编码<br>  * @param bool $ishead 是否只提取首字母<br>  * @return string 返回结果<br>  */<br> function GetPinyin($str,$charset="utf-8",$ishead = 0) {<br>     $restr = '';<br>     $str = trim($str);<br>     if($charset=="utf-8"){<br>         $str=iconv("utf-8","gb2312",$str);<br>     }<br>     $slen = strlen($str);<br>     $pinyins=array();<br>     if ($slen          return $str;<br>     }<br>     $fp = fopen('pinyin.dat', 'r');<br>     while (!feof($fp)) {<br>         $line = trim(fgets($fp));<br>         $pinyins[$line[0] . $line[1]] = substr($line, 3, strlen($line) - 3);<br>     }<br>     fclose($fp);<br>     <br>     for ($i = 0; $i          if (ord($str[$i]) > 0x80) {<br>             $c = $str[$i] . $str[$i + 1];<br>             $i++;<br>             if (isset($pinyins[$c])) {<br>                 if ($ishead == 0) {<br>                     $restr .= $pinyins[$c];<br>                 } else {<br>                     $restr .= $pinyins[$c][0];<br>                 }<br>             } else {<br>                 $restr .= "_";<br>             }<br>         } else if (preg_match("/[a-z0-9]/i", $str[$i])) {<br>             $restr .= $str[$i];<br>         } else {<br>             $restr .= "_";<br>         }<br>     }<br>     return $restr;<br> }

附件 pinyin.zip ( 19.67 KB 下载:520 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn