ホームページ  >  記事  >  バックエンド開発  >  PHPで中国語の文字をピンイン(デデ)に変換する

PHPで中国語の文字をピンイン(デデ)に変換する

WBOY
WBOYオリジナル
2016-07-25 08:47:361146ブラウズ
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 は近くにあります
  1. /**
  2. * 漢字
  3. * @param string $str 変換する文字列
  4. * @param string $charset 文字列エンコーディング
  5. * @param bool $ishead 先頭文字のみを抽出するかどうか
  6. * @return string 返される結果
  7. */
  8. 静的関数 GetPinyin($str,$charset="utf-8",$ishead = 0) {
  9. $restr = '';
  10. $str = trim($str );
  11. if($charset=="utf-8"){
  12. $str=iconv("utf-8","gb2312",$str);
  13. }
  14. $slen = strlen($str);
  15. $ pinyins=array();
  16. if ($slen return $str;
  17. }
  18. $fp = fopen(dirname(__FILE__).'/pinyin.dat', 'r');
  19. while (! feof($fp)) {
  20. $line = トリム(fgets($fp));
  21. $pinyins[$line[0] . $line[1]] = substr($line, 3, strlen($line) - 3);
  22. }
  23. fclose($fp);
  24. for ($i = 0; $i if (ord($str[$i]) > 0x80) {
  25. $c = $str[$i] . $str[$i + 1];
  26. $i++;
  27. if (isset($pinyins[$c])) {
  28. if ($ishead == 0) {
  29. $restr .= $pinyins[$c];
  30. } else {
  31. $restr .= $pinyins[$c][0];
  32. }
  33. } else {
  34. $restr .= "_";
  35. }
  36. } else if ( preg_match("/[a-z0-9]/i", $str[$i])) {
  37. $restr .= $str[$i];
  38. } else {
  39. $restr .= "_";
  40. }
  41. }
  42. return $restr;
  43. }
コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。