phpで中国語の文字をピンイン(デデ)に変換 外部リンクを引いてください! http://www.tao11.cn/a0b923820dcc509a.html http://www.tao11.cn/9d4c2f636f067f89.html http://www.tao11.cn/4b5ce2fe28308fd9.html http://www.tao11 .cn/bbce2345d7772b06.html 中の pinyin.dat は近くにあります
- /**
- * 漢字
- * @param string $str 変換する文字列
- * @param string $charset 文字列エンコーディング
- * @param bool $ishead 先頭文字のみを抽出するかどうか
- * @return string 返される結果
- */
- 静的関数 GetPinyin($str,$charset="utf-8",$ishead = 0) {
- $restr = '';
- $str = trim($str );
- if($charset=="utf-8"){
- $str=iconv("utf-8","gb2312",$str);
- }
- $slen = strlen($str);
- $ pinyins=array();
- if ($slen return $str;
- }
- $fp = fopen(dirname(__FILE__).'/pinyin.dat', 'r');
- while (! feof($fp)) {
- $line = トリム(fgets($fp));
- $pinyins[$line[0] . $line[1]] = substr($line, 3, strlen($line) - 3);
- }
- fclose($fp);
-
- for ($i = 0; $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 ( preg_match("/[a-z0-9]/i", $str[$i])) {
- $restr .= $str[$i];
- } else {
- $restr .= "_";
- }
- }
- return $restr;
- }
コードをコピー
|