欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

汉字转拼音---PHP

发布时间:2024/10/12 php 72 豆豆
生活随笔 收集整理的这篇文章主要介绍了 汉字转拼音---PHP 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

思路:

在文件中放入一个UTF-8的中文汉字与拼音对照的文件。在汉字转拼音时,只要用正则匹配到对照文件的相应的汉字,就能得到拼音。

汉字与拼音对照文件下载地址:链接:https://pan.baidu.com/s/1kIgGmP7mAKnRbchetqXrwQ 密码:6ezn

汉字转拼音类:

<?php /** * * 汉字转拼音类 * @Author : Kin * @Date : 2014-03-16 * @Email : Mr.kin@foxmail.com * */class ChinesePinyin{//utf-8中国汉字集合private $ChineseCharacters;//编码private $charset = 'utf-8';public function __construct(){if( empty($this->ChineseCharacters) ){$this->ChineseCharacters = file_get_contents('ChineseCharacters.dat','r');}}/** 转成带有声调的汉语拼音* param $input_char String 需要转换的汉字* param $delimiter String 转换之后拼音之间分隔符* param $outside_ignore Boolean 是否忽略非汉字内容*/public function TransformWithTone($input_char,$delimiter='',$outside_ignore=false){$input_len = mb_strlen($input_char,$this->charset);$output_char = '';for($i=0;$i<$input_len;$i++){$word = mb_substr($input_char,$i,1,$this->charset);if(preg_match('/^[\x{4e00}-\x{9fa5}]$/u',$word) && preg_match('/\,'.preg_quote($word).'(.*?)\,/',$this->ChineseCharacters,$matches) ){$output_char.=$matches[1].$delimiter;}else if(!$outside_ignore){$output_char.=$word;}}return $output_char;}/** 转成带无声调的汉语拼音* param $input_char String 需要转换的汉字* param $delimiter String 转换之后拼音之间分隔符* param $outside_ignore Boolean 是否忽略非汉字内容*/ public function TransformWithoutTone($input_char,$delimiter='',$outside_ignore=true){$char_with_tone = $this->TransformWithTone($input_char,$delimiter,$outside_ignore);$char_without_tone = str_replace(array('ā','á','ǎ','à','ō','ó','ǒ','ò','ē','é','ě','è','ī','í','ǐ','ì','ū','ú','ǔ','ù','ǖ','ǘ','ǚ','ǜ','ü'),array('a','a','a','a','o','o','o','o','e','e','e','e','i','i','i','i','u','u','u','u','v','v','v','v','v'),$char_with_tone );return $char_without_tone;}/** 转成汉语拼音首字母* param $input_char String 需要转换的汉字* param $delimiter String 转换之后拼音之间分隔符*/ public function TransformUcwords($input_char,$delimiter=''){$char_without_tone = ucwords($this->TransformWithoutTone($input_char,' ',true));$ucwords = preg_replace('/[^A-Z]/','',$char_without_tone);if(!empty($delimiter)){$ucwords = implode($delimiter,str_split($ucwords));}return strtolower($ucwords); }}

 

转载于:https://www.cnblogs.com/Mr-Wenyan/p/9039946.html

总结

以上是生活随笔为你收集整理的汉字转拼音---PHP的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。