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

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

WBOY
WBOYOriginal
2016-06-07 11:45:001153browse

能实现常用汉字的转换,生僻汉字会被替换成下划线_
需要一个拼音库,跟脚本放在同一目录下,在附件里。
<?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元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn