手机
当前位置:查字典教程网 >编程开发 >php教程 >php汉字转拼音的示例
php汉字转拼音的示例
摘要:复制代码代码如下:

复制代码 代码如下:

<?php

class Helper_Spell{

public $spellArray = array();

static public function getArray() {

return unserialize(file_get_contents('pytable_without_tune.txt'));

}

/**

* @desc 获取字符串的首字母

* @param $string 要转换的字符串

* @param $isOne 是否取首字母

* @param $upper 是否转换为大写

* @return string

*

* 例如:getChineseFirstChar('我是作者') 首字符全部字母+小写

* return "wo"

*

* 例如:getChineseFirstChar('我是作者',true) 首字符首字母+小写

* return "w"

*

* 例如:getChineseFirstChar('我是作者',true,true) 首字符首字母+大写

* return "W"

*

* 例如:getChineseFirstChar('我是作者',false,true) 首字符全部字母+大写

* return "WO"

*/

static public function getChineseFirstChar($string,$isOne=false,$upper=false) {

$spellArray = self::getArray();

$str_arr = self::utf8_str_split($string,1); //将字符串拆分成数组

if(preg_match('/^[x{4e00}-x{9fa5}]+$/u',$str_arr[0])) { //判断是否是汉字

$chinese = $spellArray[$str_arr[0]];

$result = $chinese[0];

}else {

$result = $str_arr[0];

}

$result = $isOne ? substr($result,0,1) : $result;

return $upper?strtoupper($result):$result;

}

/**

* @desc 将字符串转换成拼音字符串

* @param $string 汉字字符串

* @param $upper 是否大写

* @return string

*

* 例如:getChineseChar('我是作者'); 全部字符串+小写

* return "wo shi zuo zhe"

*

* 例如:getChineseChar('我是作者',true); 首字母+小写

* return "w s z z"

*

* 例如:getChineseChar('我是作者',true,true); 首字母+大写

* return "W S Z Z"

*

* 例如:getChineseChar('我是作者',false,true); 首字母+大写

* return "WO SHI ZUO ZHE"

*/

static public function getChineseChar($string,$isOne=false,$upper=false) {

global $spellArray;

$str_arr = self::utf8_str_split($string,1); //将字符串拆分成数组

$result = array();

foreach($str_arr as $char)

{

if(preg_match('/^[x{4e00}-x{9fa5}]+$/u',$char))

{

$chinese = $spellArray[$char];

$chinese = $chinese[0];

}else{

$chinese=$char;

}

$chinese = $isOne ? substr($chinese,0,1) : $chinese;

$result[] = $upper ? strtoupper($chinese) : $chinese;

}

return implode(' ',$result);

}

/**

* @desc 将字符串转换成数组

* @param $str 要转换的数组

* @param $split_len

* @return array

*/

private function utf8_str_split($str,$split_len=1) {

if(!preg_match('/^[0-9]+$/', $split_len) || $split_len < 1) {

return FALSE;

}

$len = mb_strlen($str, 'UTF-8');

if ($len <= $split_len) {

return array($str);

}

preg_match_all('/.{'.$split_len.'}|[^x00]{1,'.$split_len.'}$/us', $str, $ar);

return $ar[0];

}

}

【php汉字转拼音的示例】相关文章:

php环境上传大文件需要注意的事项

php获取json数据所有的节点路径

php线性表的入栈与出栈实例分析

php使用数组填充下拉列表框的方法

PHP实现分页的一个示例

一个php作的文本留言本的例子(六)

php比较相似字符串的方法

php对象和数组相互转换的方法

递归实现php数组转xml的代码分享

php简单实现多字节字符串翻转的方法

精品推荐
分类导航