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

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

WBOY
WBOY원래의
2016-06-07 11:45:001198검색

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.