PHP怎样将粤语转换为拼音,php公历转农历已毕代码

by admin on 2019年2月12日

array_sum(array_column($attr, ‘字段’));

一、集团同事整理的类,挺实用的.相信拿出来分享下他不会介意的O(∩_∩)O.不过如若首字母是数字或英文种有点难题.

 代码如下

用来博取汉语的首字母:

复制代码 代码如下:

<?php
class Lunar {
var $MIN_YEAR = 1891;
var $MAX_YEAR = 2100;
var $lunarInfo = array(
array(0,2,9,21936),array(6,1,30,9656),array(0,2,17,9584),array(0,2,6,21168),array(5,1,26,43344),array(0,2,13,59728),
array(0,2,2,27296),array(3,1,22,44368),array(0,2,10,43856),array(8,1,30,19304),array(0,2,19,19168),array(0,2,8,42352),
array(5,1,29,21096),array(0,2,16,53856),array(0,2,4,55632),array(4,1,25,27304),array(0,2,13,22176),array(0,2,2,39632),
array(2,1,22,19176),array(0,2,10,19168),array(6,1,30,42200),array(0,2,18,42192),array(0,2,6,53840),array(5,1,26,54568),
array(0,2,14,46400),array(0,2,3,54944),array(2,1,23,38608),array(0,2,11,38320),array(7,2,1,18872),array(0,2,20,18800),
array(0,2,8,42160),array(5,1,28,45656),array(0,2,16,27216),array(0,2,5,27968),array(4,1,24,44456),array(0,2,13,11104),
array(0,2,2,38256),array(2,1,23,18808),array(0,2,10,18800),array(6,1,30,25776),array(0,2,17,54432),array(0,2,6,59984),
array(5,1,26,27976),array(0,2,14,23248),array(0,2,4,11104),array(3,1,24,37744),array(0,2,11,37600),array(7,1,31,51560),
array(0,2,19,51536),array(0,2,8,54432),array(6,1,27,55888),array(0,2,15,46416),array(0,2,5,22176),array(4,1,25,43736),
array(0,2,13,9680),array(0,2,2,37584),array(2,1,22,51544),array(0,2,10,43344),array(7,1,29,46248),array(0,2,17,27808),
array(0,2,6,46416),array(5,1,27,21928),array(0,2,14,19872),array(0,2,3,42416),array(3,1,24,21176),array(0,2,12,21168),
array(8,1,31,43344),array(0,2,18,59728),array(0,2,8,27296),array(6,1,28,44368),array(0,2,15,43856),array(0,2,5,19296),
array(4,1,25,42352),array(0,2,13,42352),array(0,2,2,21088),array(3,1,21,59696),array(0,2,9,55632),array(7,1,30,23208),
array(0,2,17,22176),array(0,2,6,38608),array(5,1,27,19176),array(0,2,15,19152),array(0,2,3,42192),array(4,1,23,53864),
array(0,2,11,53840),array(8,1,31,54568),array(0,2,18,46400),array(0,2,7,46752),array(6,1,28,38608),array(0,2,16,38320),
array(0,2,5,18864),array(4,1,25,42168),array(0,2,13,42160),array(10,2,2,45656),array(0,2,20,27216),array(0,2,9,27968),
array(6,1,29,44448),array(0,2,17,43872),array(0,2,6,38256),array(5,1,27,18808),array(0,2,15,18800),array(0,2,4,25776),
array(3,1,23,27216),array(0,2,10,59984),array(8,1,31,27432),array(0,2,19,23232),array(0,2,7,43872),array(5,1,28,37736),
PHP怎样将粤语转换为拼音,php公历转农历已毕代码。array(0,2,16,37600),array(0,2,5,51552),array(4,1,24,54440),array(0,2,12,54432),array(0,2,1,55888),array(2,1,22,23208),
array(0,2,9,22176),array(7,1,29,43736),array(0,2,18,9680),array(0,2,7,37584),array(5,1,26,51544),array(0,2,14,43344),
array(0,2,3,46240),array(4,1,23,46416),array(0,2,10,44368),array(9,1,31,21928),array(0,2,19,19360),array(0,2,8,42416),
array(6,1,28,21176),array(0,2,16,21168),array(0,2,5,43312),array(4,1,25,29864),array(0,2,12,27296),array(0,2,1,44368),
array(2,1,22,19880),array(0,2,10,19296),array(6,1,29,42352),array(0,2,17,42208),array(0,2,6,53856),array(5,1,26,59696),
array(0,2,13,54576),array(0,2,3,23200),array(3,1,23,27472),array(0,2,11,38608),array(11,1,31,19176),array(0,2,19,19152),
array(0,2,8,42192),array(6,1,28,53848),array(0,2,15,53840),array(0,2,4,54560),array(5,1,24,55968),array(0,2,12,46496),
array(0,2,1,22224),array(2,1,22,19160),array(0,2,10,18864),array(7,1,30,42168),array(0,2,17,42160),array(0,2,6,43600),
array(5,1,26,46376),array(0,2,14,27936),array(0,2,2,44448),array(3,1,23,21936),array(0,2,11,37744),array(8,2,1,18808),
array(0,2,19,18800),array(0,2,8,25776),array(6,1,28,27216),array(0,2,15,59984),array(0,2,4,27424),array(4,1,24,43872),
array(0,2,12,43744),array(0,2,2,37600),array(3,1,21,51568),array(0,2,9,51552),array(7,1,29,54440),array(0,2,17,54432),
array(0,2,5,55888),array(5,1,26,23208),array(0,2,14,22176),array(0,2,3,42704),array(4,1,23,21224),array(0,2,11,21200),
array(8,1,31,43352),array(0,2,19,43344),array(0,2,7,46240),array(6,1,27,46416),array(0,2,15,44368),array(0,2,5,21920),
array(4,1,24,42448),array(0,2,12,42416),array(0,2,2,21168),array(3,1,22,43320),array(0,2,9,26928),array(7,1,29,29336),
array(0,2,17,27296),array(0,2,6,44368),array(5,1,26,19880),array(0,2,14,19296),array(0,2,3,42352),array(4,1,24,21104),
array(0,2,10,53856),array(8,1,30,59696),array(0,2,18,54560),array(0,2,7,55968),array(6,1,27,27472),array(0,2,15,22224),
array(0,2,5,19168),array(4,1,25,42216),array(0,2,12,42192),array(0,2,1,53584),array(2,1,21,55592),array(0,2,9,54560)
);
/**
* 将阴历转换为阴历
* @param year 公历-年
* @param month 公历-月
* @param date 公历-日
*/
function convertSolarToLunar($year,$month,$date){
//debugger;
$yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
if($year==$this->MIN_YEAR&&$month<=2&&$date<=9){
return array(1891,’正月’,’初一’,’辛卯’,1,1,’兔’);
}
return
$this->getLunarByBetween($year,$this->getDaysBetweenSolar($year,$month,$date,$yearData[1],$yearData[2]));
}

以此是将中文转换为拼音的类:charset

/**
 * Helper_Spell 汉字拼音首字母工具类
 *
 * @category Helper
 * @package  Helper_Spell
 * @author   Lancer <lancer.he@gmail.com>
 * @version  1.0
 * @see      Translation_Big2gb
 */

function convertSolarMonthToLunar($year,$month) {
$yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
if($year==$this->MIN_YEAR&&$month<=2&&$date<=9){
return array(1891,’正月’,’初一’,’辛卯’,1,1,’兔’);
}
$month_days_ary = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31);
$dd = $month_days_ary[$month];
if($this->isLeapYear($year) && $month == 2) $dd++;
$lunar_ary = array();
for ($i = 1; $i < $dd; $i++) {
$array =
$this->getLunarByBetween($year,$this->getDaysBetweenSolar($year,
$month, $i, $yearData[1], $yearData[2]));
$array[] = $year . ‘-‘ . $month . ‘-‘ . $i;
$lunar_ary[$i] = $array;
}
return $lunar_ary;
}
/**
* 将阴历转换为公历
* @param year 阴历-年
* @param month
阴历-月,闰月处理:例如即使这时闰四月,那么第四个七月就传二月,也等于旧历有1五个月,只是部分时候第1三个月的命局为0
* @param date 阴历-日
*/
function convertLunarToSolar($year,$month,$date){
$yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
$between = $this->getDaysBetweenLunar($year,$month,$date);
$res = mktime(0,0,0,$yearData[1],$yearData[2],$year);
$res = date(‘Y-m-d’, $res+$between*24*60*60);
$day = explode(‘-‘, $res);
$year = $day[0];
$month= $day[1];
$day = $day[2];
return array($year, $month, $day);
}
/**
* 判断是不是是闰年
* @param year
*/
function isLeapYear($year){
return (($year%4==0 && $year%100 !=0) || ($year%400==0));
}
/**
* 获取干支纪年
* @param year
*/
function getLunarYearName($year){
$sky = array(‘庚’,’辛’,’壬’,’癸’,’甲’,’乙’,’丙’,’丁’,’戊’,’己’);
$earth =
array(‘申’,’酉’,’戌’,’亥’,’子’,’丑’,’寅’,’卯’,’辰’,’巳’,’午’,’未’);
$year = $year.”;
return $sky[$year{3}].$earth[$year%12];
}
/**
* 根据年度获取生肖
* @param year 阴历年
*/
function getYearZodiac($year){
$zodiac =
array(‘猴’,’鸡’,’狗’,’猪’,’鼠’,’牛’,’虎’,’兔’,’龙’,’蛇’,’马’,’羊’);
return $zodiac[$year%12];
}
/**
* 获取阴历月份的小运
* @param year 阳历-年
* @param month 阳历-月
*/
function getSolarMonthDays($year,$month){
$monthHash =
array(‘1’=>31,’2’=>$this->isLeapYear($year)?29:28,’3’=>31,’4’=>30,’5’=>31,’6’=>30,’7’=>31,’8’=>31,’9’=>30,’10’=>31,’11’=>30,’12’=>31);
return $monthHash[“$month”];
}
/**
* 获取农历月份的气数
* @param year 阴历-年
* @param month 阴历-月,从元月起来
*/
function getLunarMonthDays($year,$month){
$monthData = $this->getLunarMonths($year);
return $monthData[$month-1];
}
/**
* 获取农历每月的造化的数组
* @param year
*/
function getLunarMonths($year){
$yearData = $this->lunarInfo[$year – $this->MIN_YEAR];
$leapMonth = $yearData[0];
$bit = decbin($yearData[3]);
for ($i = 0; $i < strlen($bit);$i ++) {
$bitArray[$i] = substr($bit, $i, 1);
}
for($k=0,$klen=16-count($bitArray);$k<$klen;$k++){
array_unshift($bitArray, ‘0’);
}
$bitArray = array_slice($bitArray,0,($leapMonth==0?12:13));
for($i=0; $i<count($bitArray); $i++){
$bitArray[$i] = $bitArray[$i] + 29;
}
return $bitArray;
}
/**
* 获取农历每年的命运
* @param year 农历年份
*/
function getLunarYearDays($year){
$yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
$monthArray = $this->getLunarYearMonths($year);
$len = count($monthArray);
return
($monthArray[$len-1]==0?$monthArray[$len-2]:$monthArray[$len-1]);
}
function getLunarYearMonths($year){
//debugger;
$monthData = $this->getLunarMonths($year);
$res=array();
$temp=0;
$yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
$len = ($yearData[0]==0?12:13);
for($i=0;$i<$len;$i++){
$temp=0;
for($j=0;$j<=$i;$j++){
$temp+=$monthData[$j];
}
array_push($res, $temp);
}
return $res;
}
/**
* 获取闰月
* @param year 农历年份
*/
function getLeapMonth($year){
$yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
return $yearData[0];
}
/**
* 计算公历日期与七月尾一相隔的流年
* @param year
* @param month
* @param date
*/
function getDaysBetweenLunar($year,$month,$date){
$yearMonth = $this->getLunarMonths($year);
$res=0;
for($i=1;$i<$month;$i++){
$res +=$yearMonth[$i-1];
}
$res+=$date-1;
return $res;
}
/**
* 计算2个阴历日期之间的运气
* @param year 阳历年
* @param cmonth
* @param cdate
* @param dmonth 公历十二月对应的农历月份
* @param ddate 公历初一对应的阴历天数
*/
function getDaysBetweenSolar($year,$cmonth,$cdate,$dmonth,$ddate){
$a = mktime(0,0,0,$cmonth,$cdate,$year);
$b = mktime(0,0,0,$dmonth,$ddate,$year);
return ceil(($a-$b)/24/3600);
}
/**
* 依照距离5月尾一的气数计算公历日期
* @param year 阳历年
* @param between 天数
*/
function getLunarByBetween($year,$between){
//debugger;
$lunarArray = array();
$yearMonth=array();
$t=0;
$e=0;
$leapMonth=0;
$m=”;
if($between==0){
array_push($lunarArray, $year,’正月’,’初一’);
$t = 1;
$e = 1;
}else{
$year = $between>0? $year : ($year-1);
$yearMonth = $this->getLunarYearMonths($year);
$leapMonth = $this->getLeapMonth($year);
$between = $between>0?$between :
($this->getLunarYearDays($year)+$between);
for($i=0;$i<13;$i++){
if($between==$yearMonth[$i]){
$t=$i+2;
$e=1;
break;
}else if($between<$yearMonth[$i]){
$t=$i+1;
$e=$between-(empty($yearMonth[$i-1])?0:$yearMonth[$i-1])+1;
break;
}
}
$m = ($leapMonth!=0&&$t==$leapMonth+1)?(‘闰’.$this->getCapitalNum($t-
1,true)):$this->getCapitalNum(($leapMonth!=0&&$leapMonth+1<$t?($t-1):$t),true);
array_push($lunarArray,$year,$m,$this->getCapitalNum($e,false));
}
array_push($lunarArray,$this->getLunarYearName($year));// 天干地支
array_push($lunarArray,$t,$e);
array_push($lunarArray,$this->getYearZodiac($year));// 12生肖
array_push($lunarArray,$leapMonth);// 闰几月
return $lunarArray;
}
/**
* 获取数字的公历叫法
* @param num 数字
* @param isMonth 是不是是月份的数字
*/
function getCapitalNum($num,$isMonth){
$isMonth = $isMonth || false;
$dateHash=array(‘0’=>”,’1’=>’一’,’2’=>’二’,’3’=>’三’,’4’=>’四’,’5’=>’五’,’6’=>’六’,’7’=>’七’,’8’=>’八’,’9’=>’九’,’10’=>’十
‘);
$monthHash=array(‘0’=>”,’1’=>’正月’,’2’=>’二月’,’3’=>’三月’,’4’=>’四月’,’5’=>’五月’,’6’=>’六月’,’7’=>’七月’,’8’=>’八月’,’9’=>’九月’,’10’=>’十月’,’11’=>’冬月’,’12’=>’腊月’);
$res=”;
if($isMonth){
$res = $monthHash[$num];
}else{
if($num<=10){
$res = ‘初’.$dateHash[$num];
}else if($num>10&&$num<20){
$res = ‘十’.$dateHash[$num-10];
}else if($num==20){
$res = “二十”;
}else if($num>20&&$num<30){
$res = “廿”.$dateHash[$num-20];
}else if($num==30){
$res = “三十”;
}
}
return $res;
}
}
$lunar = new Lunar();
$month = $lunar->convertLunarToSolar(2012, 1,1);
print_r($month);
exit;

<?php
/**
* 汉字转账为拼音,拼音转化为汉字
*
*/

class Helper_Spell {
/**
 * $_pinyins
 * @var array
 * @access private
 */
private $_pinyins = array(
    176161 => ‘A’,
    176197 => ‘B’,
    178193 => ‘C’,
    180238 => ‘D’,
    182234 => ‘E’,
    183162 => ‘F’,
    184193 => ‘G’,
    185254 => ‘H’,
    187247 => ‘J’,
    191166 => ‘K’,
    192172 => ‘L’,
    194232 => ‘M’,
    196195 => ‘N’,
    197182 => ‘O’,
    197190 => ‘P’,
    198218 => ‘Q’,
    200187 => ‘R’,
    200246 => ‘S’,
    203250 => ‘T’,
    205218 => ‘W’,
    206244 => ‘X’,
PHP怎样将粤语转换为拼音,php公历转农历已毕代码。    209185 => ‘Y’,
    212209 => ‘Z’,
    215249 => ‘Z’,
);

class charset
{
private $_code=array(
array(“a”,’-20319′),
array(“ai”,’-20317′),
array(“an”,’-20304′),
array(“ang”,’-20295′),
array(“ao”,’-20292′),
array(“ba”,’-20283′),
array(“bai”,’-20265′),
array(“ban”,’-20257′),
array(“bang”,’-20242′),
array(“bao”,’-20230′),
array(“bei”,’-20051′),
array(“ben”,’-20036′),
array(“beng”,’-20032′),
array(“bi”,’-20026′),
array(“bian”,’-20002′),
array(“biao”,’-19990′),
array(“bie”,’-19986′),
array(“bin”,’-19982′),
array(“bing”,’-19976′),
array(“bo”,’-19805′),
array(“bu”,’-19784′),
array(“ca”,’-19775′),
array(“cai”,’-19774′),
array(“can”,’-19763′),
array(“cang”,’-19756′),
array(“cao”,’-19751′),
array(“ce”,’-19746′),
array(“ceng”,’-19741′),
array(“cha”,’-19739′),
array(“chai”,’-19728′),
array(“chan”,’-19725′),
array(“chang”,’-19715′),
array(“chao”,’-19540′),
array(“che”,’-19531′),
array(“chen”,’-19525′),
array(“cheng”,’-19515′),
array(“chi”,’-19500′),
array(“chong”,’-19484′),
array(“chou”,’-19479′),
array(“chu”,’-19467′),
array(“chuai”,’-19289′),
array(“chuan”,’-19288′),
array(“chuang”,’-19281′),
array(“chui”,’-19275′),
array(“chun”,’-19270′),
array(“chuo”,’-19263′),
array(“ci”,’-19261′),
array(“cong”,’-19249′),
array(“cou”,’-19243′),
array(“cu”,’-19242′),
array(“cuan”,’-19238′),
array(“cui”,’-19235′),
array(“cun”,’-19227′),
array(“cuo”,’-19224′),
array(“da”,’-19218′),
array(“dai”,’-19212′),
array(“dan”,’-19038′),
array(“dang”,’-19023′),
array(“dao”,’-19018′),
array(“de”,’-19006′),
array(“deng”,’-19003′),
array(“di”,’-18996′),
array(“dian”,’-18977′),
array(“diao”,’-18961′),
array(“die”,’-18952′),
array(“ding”,’-18783′),
array(“diu”,’-18774′),
array(“dong”,’-18773′),
array(“dou”,’-18763′),
array(“du”,’-18756′),
array(“duan”,’-18741′),
array(“dui”,’-18735′),
array(“dun”,’-18731′),
array(“duo”,’-18722′),
array(“e”,’-18710′),
array(“en”,’-18697′),
array(“er”,’-18696′),
array(“fa”,’-18526′),
array(“fan”,’-18518′),
array(“fang”,’-18501′),
array(“fei”,’-18490′),
array(“fen”,’-18478′),
array(“feng”,’-18463′),
array(“fo”,’-18448′),
array(“fou”,’-18447′),
array(“fu”,’-18446′),
array(“ga”,’-18239′),
array(“gai”,’-18237′),
array(“gan”,’-18231′),
array(“gang”,’-18220′),
array(“gao”,’-18211′),
array(“ge”,’-18201′),
array(“gei”,’-18184′),
array(“gen”,’-18183′),
array(“geng”,’-18181′),
array(“gong”,’-18012′),
array(“gou”,’-17997′),
array(“gu”,’-17988′),
array(“gua”,’-17970′),
array(“guai”,’-17964′),
array(“guan”,’-17961′),
array(“guang”,’-17950′),
array(“gui”,’-17947′),
array(“gun”,’-17931′),
array(“guo”,’-17928′),
array(“ha”,’-17922′),
array(“hai”,’-17759′),
array(“han”,’-17752′),
array(“hang”,’-17733′),
array(“hao”,’-17730′),
array(“he”,’-17721′),
array(“hei”,’-17703′),
array(“hen”,’-17701′),
array(“heng”,’-17697′),
array(“hong”,’-17692′),
array(“hou”,’-17683′),
array(“hu”,’-17676′),
array(“hua”,’-17496′),
array(“huai”,’-17487′),
array(“huan”,’-17482′),
array(“huang”,’-17468′),
array(“hui”,’-17454′),
array(“hun”,’-17433′),
array(“huo”,’-17427′),
array(“ji”,’-17417′),
array(“jia”,’-17202′),
array(“jian”,’-17185′),
array(“jiang”,’-16983′),
array(“jiao”,’-16970′),
array(“jie”,’-16942′),
array(“jin”,’-16915′),
array(“jing”,’-16733′),
array(“jiong”,’-16708′),
array(“jiu”,’-16706′),
array(“ju”,’-16689′),
array(“juan”,’-16664′),
array(“jue”,’-16657′),
array(“jun”,’-16647′),
array(“ka”,’-16474′),
array(“kai”,’-16470′),
array(“kan”,’-16465′),
array(“kang”,’-16459′),
array(“kao”,’-16452′),
array(“ke”,’-16448′),
array(“ken”,’-16433′),
array(“keng”,’-16429′),
array(“kong”,’-16427′),
array(“kou”,’-16423′),
array(“ku”,’-16419′),
array(“kua”,’-16412′),
array(“kuai”,’-16407′),
array(“kuan”,’-16403′),
array(“kuang”,’-16401′),
array(“kui”,’-16393′),
array(“kun”,’-16220′),
array(“kuo”,’-16216′),
array(“la”,’-16212′),
array(“lai”,’-16205′),
array(“lan”,’-16202′),
array(“lang”,’-16187′),
array(“lao”,’-16180′),
array(“le”,’-16171′),
array(“lei”,’-16169′),
array(“leng”,’-16158′),
array(“li”,’-16155′),
array(“lia”,’-15959′),
array(“lian”,’-15958′),
array(“liang”,’-15944′),
array(“liao”,’-15933′),
array(“lie”,’-15920′),
array(“lin”,’-15915′),
array(“ling”,’-15903′),
array(“liu”,’-15889′),
array(“long”,’-15878′),
array(“lou”,’-15707′),
array(“lu”,’-15701′),
array(“lv”,’-15681′),
array(“luan”,’-15667′),
array(“lue”,’-15661′),
array(“lun”,’-15659′),
array(“luo”,’-15652′),
array(“ma”,’-15640′),
array(“mai”,’-15631′),
array(“man”,’-15625′),
array(“mang”,’-15454′),
array(“mao”,’-15448′),
array(“me”,’-15436′),
array(“mei”,’-15435′),
array(“men”,’-15419′),
array(“meng”,’-15416′),
array(“mi”,’-15408′),
array(“mian”,’-15394′),
array(“miao”,’-15385′),
array(“mie”,’-15377′),
array(“min”,’-15375′),
array(“ming”,’-15369′),
array(“miu”,’-15363′),
array(“mo”,’-15362′),
array(“mou”,’-15183′),
array(“mu”,’-15180′),
array(“na”,’-15165′),
array(“nai”,’-15158′),
array(“nan”,’-15153′),
array(“nang”,’-15150′),
array(“nao”,’-15149′),
array(“ne”,’-15144′),
array(“nei”,’-15143′),
array(“nen”,’-15141′),
array(“neng”,’-15140′),
array(“ni”,’-15139′),
array(“nian”,’-15128′),
array(“niang”,’-15121′),
array(“niao”,’-15119′),
array(“nie”,’-15117′),
array(“nin”,’-15110′),
array(“ning”,’-15109′),
array(“niu”,’-14941′),
array(“nong”,’-14937′),
array(“nu”,’-14933′),
array(“nv”,’-14930′),
array(“nuan”,’-14929′),
array(“nue”,’-14928′),
array(“nuo”,’-14926′),
array(“o”,’-14922′),
array(“ou”,’-14921′),
array(“pa”,’-14914′),
array(“pai”,’-14908′),
array(“pan”,’-14902′),
array(“pang”,’-14894′),
array(“pao”,’-14889′),
array(“pei”,’-14882′),
array(“pen”,’-14873′),
array(“peng”,’-14871′),
array(“pi”,’-14857′),
array(“pian”,’-14678′),
array(“piao”,’-14674′),
array(“pie”,’-14670′),
array(“pin”,’-14668′),
array(“ping”,’-14663′),
array(“po”,’-14654′),
array(“pu”,’-14645′),
array(“qi”,’-14630′),
array(“qia”,’-14594′),
array(“qian”,’-14429′),
array(“qiang”,’-14407′),
array(“qiao”,’-14399′),
array(“qie”,’-14384′),
array(“qin”,’-14379′),
array(“qing”,’-14368′),
array(“qiong”,’-14355′),
array(“qiu”,’-14353′),
array(“qu”,’-14345′),
array(“quan”,’-14170′),
array(“que”,’-14159′),
array(“qun”,’-14151′),
array(“ran”,’-14149′),
array(“rang”,’-14145′),
array(“rao”,’-14140′),
array(“re”,’-14137′),
array(“ren”,’-14135′),
array(“reng”,’-14125′),
array(“ri”,’-14123′),
array(“rong”,’-14122′),
array(“rou”,’-14112′),
array(“ru”,’-14109′),
array(“ruan”,’-14099′),
array(“rui”,’-14097′),
array(“run”,’-14094′),
array(“ruo”,’-14092′),
array(“sa”,’-14090′),
array(“sai”,’-14087′),
array(“san”,’-14083′),
array(“sang”,’-13917′),
array(“sao”,’-13914′),
array(“se”,’-13910′),
array(“sen”,’-13907′),
array(“seng”,’-13906′),
array(“sha”,’-13905′),
array(“shai”,’-13896′),
array(“shan”,’-13894′),
array(“shang”,’-13878′),
array(“shao”,’-13870′),
array(“she”,’-13859′),
array(“shen”,’-13847′),
array(“sheng”,’-13831′),
array(“shi”,’-13658′),
array(“shou”,’-13611′),
array(“shu”,’-13601′),
array(“shua”,’-13406′),
array(“shuai”,’-13404′),
array(“shuan”,’-13400′),
array(“shuang”,’-13398′),
array(“shui”,’-13395′),
array(“shun”,’-13391′),
array(“shuo”,’-13387′),
array(“si”,’-13383′),
array(“song”,’-13367′),
array(“sou”,’-13359′),
array(“su”,’-13356′),
array(“suan”,’-13343′),
array(“sui”,’-13340′),
array(“sun”,’-13329′),
array(“suo”,’-13326′),
array(“ta”,’-13318′),
array(“tai”,’-13147′),
array(“tan”,’-13138′),
array(“tang”,’-13120′),
array(“tao”,’-13107′),
array(“te”,’-13096′),
array(“teng”,’-13095′),
array(“ti”,’-13091′),
array(“tian”,’-13076′),
array(“tiao”,’-13068′),
array(“tie”,’-13063′),
array(“ting”,’-13060′),
array(“tong”,’-12888′),
array(“tou”,’-12875′),
array(“tu”,’-12871′),
array(“tuan”,’-12860′),
array(“tui”,’-12858′),
array(“tun”,’-12852′),
array(“tuo”,’-12849′),
array(“wa”,’-12838′),
array(“wai”,’-12831′),
array(“wan”,’-12829′),
array(“wang”,’-12812′),
array(“wei”,’-12802′),
array(“wen”,’-12607′),
array(“weng”,’-12597′),
array(“wo”,’-12594′),
array(“wu”,’-12585′),
array(“xi”,’-12556′),
array(“xia”,’-12359′),
array(“xian”,’-12346′),
array(“xiang”,’-12320′),
array(“xiao”,’-12300′),
array(“xie”,’-12120′),
array(“xin”,’-12099′),
array(“xing”,’-12089′),
array(“xiong”,’-12074′),
array(“xiu”,’-12067′),
array(“xu”,’-12058′),
array(“xuan”,’-12039′),
array(“xue”,’-11867′),
array(“xun”,’-11861′),
array(“ya”,’-11847′),
array(“yan”,’-11831′),
array(“yang”,’-11798′),
array(“yao”,’-11781′),
array(“ye”,’-11604′),
array(“yi”,’-11589′),
array(“yin”,’-11536′),
array(“ying”,’-11358′),
array(“yo”,’-11340′),
array(“yong”,’-11339′),
array(“you”,’-11324′),
array(“yu”,’-11303′),
array(“yuan”,’-11097′),
array(“yue”,’-11077′),
array(“yun”,’-11067′),
array(“za”,’-11055′),
array(“zai”,’-11052′),
array(“zan”,’-11045′),
array(“zang”,’-11041′),
array(“zao”,’-11038′),
array(“ze”,’-11024′),
array(“zei”,’-11020′),
array(“zen”,’-11019′),
array(“zeng”,’-11018′),
array(“zha”,’-11014′),
array(“zhai”,’-10838′),
array(“zhan”,’-10832′),
array(“zhang”,’-10815′),
array(“zhao”,’-10800′),
array(“zhe”,’-10790′),
array(“zhen”,’-10780′),
array(“zheng”,’-10764′),
array(“zhi”,’-10587′),
array(“zhong”,’-10544′),
array(“zhou”,’-10533′),
array(“zhu”,’-10519′),
array(“zhua”,’-10331′),
array(“zhuai”,’-10329′),
array(“zhuan”,’-10328′),
array(“zhuang”,’-10322′),
array(“zhui”,’-10315′),
array(“zhun”,’-10309′),
array(“zhuo”,’-10307′),
array(“zi”,’-10296′),
array(“zong”,’-10281′),
array(“zou”,’-10274′),
array(“zu”,’-10270′),
array(“zuan”,’-10262′),
array(“zui”,’-10260′),
array(“zun”,’-10256′),
array(“zuo”,’-10254′)
);
//拼音转化函数
function PinYin($str){
$ret=””;
for($i=0;$i<strlen($str);$i++){
$p=ord(substr($str,$i,1)); //查看ASCII码
if($p>160){ //要是是中文,再多截取一个字符
$q=ord(substr($str,++$i,1));
$p=$p*256+$q-65536;
}
$ret.=$this->convert($p);
}
return $ret;
}

/**
 * $_charset
 * @var string
 * @access private
 */
private $_charset = null;

//转化函数
function convert($num){
if($num>0&&$num<160){
return chr($num);
}elseif($num<“-20319″||$num>”-10247″){
return “”;
}else{
for($i=count($this->_code)-1;$i>=0;$i–){
if($this->_code[$i][1]<=$num)
break;
}
return substr($this->_code[$i][0],0,1);
}
}
}

/**
 * __construct 构造函数, 指定需要的编码 default: utf-8 支持utf-8,
gb2312
 *
 * @param unknown_type $charset
 */
public function __construct( $charset = ‘utf-8’ ) {
    $this->_charset = $charset;
}

 

/**
 * getInitialsFirst 重返第二个汉字的拼音
 *
 * @access public
 * @static
 * @param  string $str
 * @return string
 * @example Helper_Spell::getInitialsFirst(‘我的爱’); => w
 */
public static function getInitialsFirst( $str, $charset = ‘utf-8’ ) {
    $chars = array(
        ‘A’,’B’,’C’,’D’,’E’,’F’,
        ‘G’,’H’,’I’,’J’,’K’,’L’,
        ‘M’,’N’,’O’,’P’,’Q’,’R’,
        ‘S’,’T’,’U’,’V’,’W’,’X’,
        ‘Y’,’Z’);

上面那几个是用来测试代码的:

    $string = self::getInitials( $str );
    $length = strlen($string);

<?php

    for($i=0; $i < $length; $i++) {
        if ( in_array( $string{$i}, $chars ) ) {
            return $string{$i};
        }
    }
    return ‘*’;
}

include_once ‘charset.class.php’;
header(‘Content-type: text/html;charset=utf-8’);

/**
 * getInitials 重临拼音组合
 *
 * @access public
 * @static
 * @param  string $str
 * @return string
 * @example Helper_Spell::getInitials(‘我的爱’); => wda
 */
public static function getInitials( $str, $charset = ‘utf-8’ ) {
    $instance = new Helper_Spell( $charset );
    return $instance->_getInitials( $str );
}

$charset=new charset();
foreach(array(‘武汉’,’中国’,’上海’) as $val){
echo
iconv(‘gbk’,’utf-8//IGNORE’,strtoupper($charset->PinYin(mb_convert_encoding($val,’gbk’,’utf-8′))));
echo ‘<br/>’;
}

/**
 * _getInitials 获得中文字串的拼音首字符
 *              注:英文的字串:不变回来(包罗数字)    eg .abc123 =>
abc123
 *                  华语字符串:重临拼音首字符        eg. 王小明 =>
WXM
 *                  中国和英国混合串: 重回拼音首字符和英文  eg. 我i我j =>
WIWJ
 *
 * @access private
 * @param  string $str
 * @return string
 */
private function _getInitials( $str, $translation=TRUE ){
bf88必发唯一官网,    if ( empty($str) ) return ”;
    if ( $this->_isAscii($str[0]) && $this->_isAsciis( $str
))
        return $str;

    if ( $translation )
        $str = Translation_Big2gb::big2gb( $str );

    $result = array();
    if ( $this->_charset == ‘utf-8’ ){
        //IGNORE很要紧,加上那么些就足以是ICONV()函数忽略错误,继续执行
        $str = iconv( ‘utf-8’, ‘gbk//IGNORE’, $str );
    }
    $words = $this->_cutWord( $str );

    foreach ( $words AS $word ) {          
        if ( $this->_isAscii($word) ) {//非中文
            $result[] = $word;
            continue;
        }
        $code = ( ord(substr($word,0,1)) ) * 1000 +
(ord(substr($word,1,1)));
        //获取拼音首字母A–Z

        if ( ($i = $this->_search($code)) != -1 ){
            $result[] = $this->_pinyins[$i];
        }
    }
    return strtoupper(implode(”, $result));
}

/**
 * _msubstr 拿到汉语字符串
 *
 * @access private
 * @param string $str
 * @param int    $start
 * @param int    $len
 * @return string
 */
private function _msubstr ($str, $start, $len) {
    $start  = $start * 2;
    $len    = $len * 2;
    $strlen = strlen($str);
    $result = ”;
    for ( $i = 0; $i < $strlen; $i++ ) {
        if ( $i >= $start && $i < ($start + $len) ) {
            if ( ord(substr($str, $i, 1)) > 129 ) $result .=
substr($str, $i, 2);
            else $result .= substr($str, $i, 1);
        }
        if ( ord(substr($str, $i, 1)) > 129 ) $i++;
    }
    return $result;
}

/**
 * _cutWord  字符串切分为数组 (汉字可能一个字符为单位)
 *
 * @access private
 * @param string $str
 * @return array
 */
private function _cutWord( $str ) {
    $words = array();
    while ( $str != “” ) {
        if ( $this->_isAscii($str) ) {//非中文
            $words[] = $str[0];
            $str = substr( $str, strlen($str[0]) );
        } else {
            $word = $this->_msubstr( $str, 0, 1 );
            $words[] = $word;
            $str = substr( $str,  strlen($word) );
        }
     }
     return $words;
}

/**
 * _isAscii 判断字符是还是不是是ascii字符
 *
 * @access private
 * @param  string $char
 * @return bool
 */
private function _isAscii( $char ) {
    return ( ord( substr($char,0,1) ) < 160 );
}

 

/**
 * _isAsciis 判断字符串前3个字符是或不是是ascii字符
 *
 * @access private
 * @param  string $str
 * @return bool
 */
private function _isAsciis( $str ) {
    $len = strlen($str) >= 3 ? 3: 2;
    $chars = array();
    for( $i = 1; $i < $len -1; $i++ ){
        $chars[] = $this->_isAscii( $str[$i] ) ? ‘yes’:’no’;
    }
    $result = array_count_values( $chars );
    if ( empty($result[‘no’]) ){
        return true;
    }
    return false;
}

/**
 * _getChar 通过ASC码重临字母恐怕数字
 *
 * @access private
 * @param  string $ascii
 * @return string
 */
private function _getChar( $ascii ){
    if ( $ascii >= 48 && $ascii <= 57 ) {
        return chr($ascii);  //数字
    } elseif ( $ascii>=65 && $ascii<=90 ) {
        return chr($ascii);   // A–Z
    } elseif ($ascii>=97 && $ascii<=122 ) {
        return chr($ascii-32); // a–z
    } else {
        return ‘~’; //其他
    }
}

/**
 * _search 查找要求的汉字内码(gb2312) 对应的拼音字符(二分法)
 *
 * @access private
 * @param int $code
 * @return int
 */
private function _search( $code ) {   
    $data = array_keys($this->_pinyins);

    $lower = 0;
    $upper = sizeof($data)-1;

    // 排除非超级汉字
    if ($code < $data[0] || $code > $data[23]) return -1;

    for (;;) {        
        if ( $lower > $upper ){            
            return $data[$lower-1];
        }
        $middle = (int) round(($lower + $upper) / 2);
        if ( !isset($data[$middle]) ) {         
            return -1;
        }

        if ( $data[$middle] < $code ){
            $lower = (int)$middle + 1;
        } else if ( $data[$middle] == $code ) {          
            return $data[$middle];
        } else {
            $upper = (int)$middle – 1;
        }
    }// end for
}

}

二、用来博取汉语的首字母

本条是将粤语转换为拼音的类:charset

复制代码 代码如下:

<?php
/**
 * 汉字转会为拼音,拼音转化为汉字
 *
 */

class charset
{
    private $_code=array(
    array(“a”,’-20319′),
    array(“ai”,’-20317′),
    array(“an”,’-20304′),
    array(“ang”,’-20295′),
    array(“ao”,’-20292′),
    array(“ba”,’-20283′),
    array(“bai”,’-20265′),
    array(“ban”,’-20257′),
    array(“bang”,’-20242′),
    array(“bao”,’-20230′),
    array(“bei”,’-20051′),
    array(“ben”,’-20036′),
    array(“beng”,’-20032′),
    array(“bi”,’-20026′),
    array(“bian”,’-20002′),
    array(“biao”,’-19990′),
    array(“bie”,’-19986′),
    array(“bin”,’-19982′),
    array(“bing”,’-19976′),
    array(“bo”,’-19805′),
    array(“bu”,’-19784′),
    array(“ca”,’-19775′),
    array(“cai”,’-19774′),
    array(“can”,’-19763′),
    array(“cang”,’-19756′),
    array(“cao”,’-19751′),
    array(“ce”,’-19746′),
    array(“ceng”,’-19741′),
    array(“cha”,’-19739′),
    array(“chai”,’-19728′),
    array(“chan”,’-19725′),
    array(“chang”,’-19715′),
    array(“chao”,’-19540′),
    array(“che”,’-19531′),
    array(“chen”,’-19525′),
    array(“cheng”,’-19515′),
    array(“chi”,’-19500′),
    array(“chong”,’-19484′),
    array(“chou”,’-19479′),
    array(“chu”,’-19467′),
    array(“chuai”,’-19289′),
    array(“chuan”,’-19288′),
    array(“chuang”,’-19281′),
    array(“chui”,’-19275′),
    array(“chun”,’-19270′),
    array(“chuo”,’-19263′),
    array(“ci”,’-19261′),
    array(“cong”,’-19249′),
    array(“cou”,’-19243′),
    array(“cu”,’-19242′),
    array(“cuan”,’-19238′),
    array(“cui”,’-19235′),
    array(“cun”,’-19227′),
    array(“cuo”,’-19224′),
    array(“da”,’-19218′),
    array(“dai”,’-19212′),
    array(“dan”,’-19038′),
    array(“dang”,’-19023′),
    array(“dao”,’-19018′),
    array(“de”,’-19006′),
    array(“deng”,’-19003′),
    array(“di”,’-18996′),
    array(“dian”,’-18977′),
    array(“diao”,’-18961′),
    array(“die”,’-18952′),
    array(“ding”,’-18783′),
    array(“diu”,’-18774′),
    array(“dong”,’-18773′),
    array(“dou”,’-18763′),
    array(“du”,’-18756′),
    array(“duan”,’-18741′),
    array(“dui”,’-18735′),
    array(“dun”,’-18731′),
    array(“duo”,’-18722′),
    array(“e”,’-18710′),
    array(“en”,’-18697′),
    array(“er”,’-18696′),
    array(“fa”,’-18526′),
    array(“fan”,’-18518′),
    array(“fang”,’-18501′),
    array(“fei”,’-18490′),
    array(“fen”,’-18478′),
    array(“feng”,’-18463′),
    array(“fo”,’-18448′),
    array(“fou”,’-18447′),
    array(“fu”,’-18446′),
    array(“ga”,’-18239′),
    array(“gai”,’-18237′),
    array(“gan”,’-18231′),
    array(“gang”,’-18220′),
    array(“gao”,’-18211′),
    array(“ge”,’-18201′),
    array(“gei”,’-18184′),
    array(“gen”,’-18183′),
    array(“geng”,’-18181′),
    array(“gong”,’-18012′),
    array(“gou”,’-17997′),
    array(“gu”,’-17988′),
    array(“gua”,’-17970′),
    array(“guai”,’-17964′),
    array(“guan”,’-17961′),
    array(“guang”,’-17950′),
    array(“gui”,’-17947′),
    array(“gun”,’-17931′),
    array(“guo”,’-17928′),
    array(“ha”,’-17922′),
    array(“hai”,’-17759′),
    array(“han”,’-17752′),
    array(“hang”,’-17733′),
    array(“hao”,’-17730′),
    array(“he”,’-17721′),
    array(“hei”,’-17703′),
    array(“hen”,’-17701′),
    array(“heng”,’-17697′),
    array(“hong”,’-17692′),
    array(“hou”,’-17683′),
    array(“hu”,’-17676′),
    array(“hua”,’-17496′),
    array(“huai”,’-17487′),
    array(“huan”,’-17482′),
    array(“huang”,’-17468′),
    array(“hui”,’-17454′),
    array(“hun”,’-17433′),
    array(“huo”,’-17427′),
    array(“ji”,’-17417′),
    array(“jia”,’-17202′),
    array(“jian”,’-17185′),
    array(“jiang”,’-16983′),
    array(“jiao”,’-16970′),
    array(“jie”,’-16942′),
    array(“jin”,’-16915′),
    array(“jing”,’-16733′),
    array(“jiong”,’-16708′),
    array(“jiu”,’-16706′),
    array(“ju”,’-16689′),
    array(“juan”,’-16664′),
    array(“jue”,’-16657′),
    array(“jun”,’-16647′),
    array(“ka”,’-16474′),
    array(“kai”,’-16470′),
    array(“kan”,’-16465′),
    array(“kang”,’-16459′),
    array(“kao”,’-16452′),
    array(“ke”,’-16448′),
    array(“ken”,’-16433′),
    array(“keng”,’-16429′),
    array(“kong”,’-16427′),
    array(“kou”,’-16423′),
    array(“ku”,’-16419′),
    array(“kua”,’-16412′),
    array(“kuai”,’-16407′),
    array(“kuan”,’-16403′),
    array(“kuang”,’-16401′),
    array(“kui”,’-16393′),
    array(“kun”,’-16220′),
    array(“kuo”,’-16216′),
    array(“la”,’-16212′),
    array(“lai”,’-16205′),
    array(“lan”,’-16202′),
    array(“lang”,’-16187′),
    array(“lao”,’-16180′),
    array(“le”,’-16171′),
    array(“lei”,’-16169′),
    array(“leng”,’-16158′),
    array(“li”,’-16155′),
    array(“lia”,’-15959′),
    array(“lian”,’-15958′),
    array(“liang”,’-15944′),
    array(“liao”,’-15933′),
    array(“lie”,’-15920′),
    array(“lin”,’-15915′),
    array(“ling”,’-15903′),
    array(“liu”,’-15889′),
    array(“long”,’-15878′),
    array(“lou”,’-15707′),
    array(“lu”,’-15701′),
    array(“lv”,’-15681′),
    array(“luan”,’-15667′),
    array(“lue”,’-15661′),
    array(“lun”,’-15659′),
    array(“luo”,’-15652′),
    array(“ma”,’-15640′),
    array(“mai”,’-15631′),
    array(“man”,’-15625′),
    array(“mang”,’-15454′),
    array(“mao”,’-15448′),
    array(“me”,’-15436′),
    array(“mei”,’-15435′),
    array(“men”,’-15419′),
    array(“meng”,’-15416′),
    array(“mi”,’-15408′),
    array(“mian”,’-15394′),
    array(“miao”,’-15385′),
    array(“mie”,’-15377′),
    array(“min”,’-15375′),
    array(“ming”,’-15369′),
    array(“miu”,’-15363′),
    array(“mo”,’-15362′),
    array(“mou”,’-15183′),
    array(“mu”,’-15180′),
    array(“na”,’-15165′),
    array(“nai”,’-15158′),
    array(“nan”,’-15153′),
    array(“nang”,’-15150′),
    array(“nao”,’-15149′),
    array(“ne”,’-15144′),
    array(“nei”,’-15143′),
    array(“nen”,’-15141′),
    array(“neng”,’-15140′),
    array(“ni”,’-15139′),
    array(“nian”,’-15128′),
    array(“niang”,’-15121′),
    array(“niao”,’-15119′),
    array(“nie”,’-15117′),
    array(“nin”,’-15110′),
    array(“ning”,’-15109′),
    array(“niu”,’-14941′),
    array(“nong”,’-14937′),
    array(“nu”,’-14933′),
    array(“nv”,’-14930′),
    array(“nuan”,’-14929′),
    array(“nue”,’-14928′),
    array(“nuo”,’-14926′),
    array(“o”,’-14922′),
    array(“ou”,’-14921′),
    array(“pa”,’-14914′),
    array(“pai”,’-14908′),
    array(“pan”,’-14902′),
    array(“pang”,’-14894′),
    array(“pao”,’-14889′),
    array(“pei”,’-14882′),
    array(“pen”,’-14873′),
    array(“peng”,’-14871′),
    array(“pi”,’-14857′),
    array(“pian”,’-14678′),
    array(“piao”,’-14674′),
    array(“pie”,’-14670′),
    array(“pin”,’-14668′),
    array(“ping”,’-14663′),
    array(“po”,’-14654′),
    array(“pu”,’-14645′),
    array(“qi”,’-14630′),
    array(“qia”,’-14594′),
    array(“qian”,’-14429′),
    array(“qiang”,’-14407′),
    array(“qiao”,’-14399′),
    array(“qie”,’-14384′),
    array(“qin”,’-14379′),
    array(“qing”,’-14368′),
    array(“qiong”,’-14355′),
    array(“qiu”,’-14353′),
    array(“qu”,’-14345′),
    array(“quan”,’-14170′),
    array(“que”,’-14159′),
    array(“qun”,’-14151′),
    array(“ran”,’-14149′),
    array(“rang”,’-14145′),
    array(“rao”,’-14140′),
    array(“re”,’-14137′),
    array(“ren”,’-14135′),
    array(“reng”,’-14125′),
    array(“ri”,’-14123′),
    array(“rong”,’-14122′),
    array(“rou”,’-14112′),
    array(“ru”,’-14109′),
    array(“ruan”,’-14099′),
    array(“rui”,’-14097′),
    array(“run”,’-14094′),
    array(“ruo”,’-14092′),
    array(“sa”,’-14090′),
    array(“sai”,’-14087′),
    array(“san”,’-14083′),
    array(“sang”,’-13917′),
    array(“sao”,’-13914′),
    array(“se”,’-13910′),
    array(“sen”,’-13907′),
    array(“seng”,’-13906′),
    array(“sha”,’-13905′),
    array(“shai”,’-13896′),
    array(“shan”,’-13894′),
    array(“shang”,’-13878′),
    array(“shao”,’-13870′),
    array(“she”,’-13859′),
    array(“shen”,’-13847′),
    array(“sheng”,’-13831′),
    array(“shi”,’-13658′),
    array(“shou”,’-13611′),
    array(“shu”,’-13601′),
    array(“shua”,’-13406′),
    array(“shuai”,’-13404′),
    array(“shuan”,’-13400′),
    array(“shuang”,’-13398′),
    array(“shui”,’-13395′),
    array(“shun”,’-13391′),
    array(“shuo”,’-13387′),
    array(“si”,’-13383′),
    array(“song”,’-13367′),
    array(“sou”,’-13359′),
    array(“su”,’-13356′),
    array(“suan”,’-13343′),
    array(“sui”,’-13340′),
    array(“sun”,’-13329′),
    array(“suo”,’-13326′),
    array(“ta”,’-13318′),
    array(“tai”,’-13147′),
    array(“tan”,’-13138′),
    array(“tang”,’-13120′),
    array(“tao”,’-13107′),
    array(“te”,’-13096′),
    array(“teng”,’-13095′),
    array(“ti”,’-13091′),
    array(“tian”,’-13076′),
    array(“tiao”,’-13068′),
    array(“tie”,’-13063′),
    array(“ting”,’-13060′),
    array(“tong”,’-12888′),
    array(“tou”,’-12875′),
    array(“tu”,’-12871′),
    array(“tuan”,’-12860′),
    array(“tui”,’-12858′),
    array(“tun”,’-12852′),
    array(“tuo”,’-12849′),
    array(“wa”,’-12838′),
    array(“wai”,’-12831′),
    array(“wan”,’-12829′),
    array(“wang”,’-12812′),
    array(“wei”,’-12802′),
    array(“wen”,’-12607′),
    array(“weng”,’-12597′),
    array(“wo”,’-12594′),
    array(“wu”,’-12585′),
    array(“xi”,’-12556′),
    array(“xia”,’-12359′),
    array(“xian”,’-12346′),
    array(“xiang”,’-12320′),
    array(“xiao”,’-12300′),
    array(“xie”,’-12120′),
    array(“xin”,’-12099′),
    array(“xing”,’-12089′),
    array(“xiong”,’-12074′),
    array(“xiu”,’-12067′),
    array(“xu”,’-12058′),
    array(“xuan”,’-12039′),
    array(“xue”,’-11867′),
    array(“xun”,’-11861′),
    array(“ya”,’-11847′),
    array(“yan”,’-11831′),
    array(“yang”,’-11798′),
    array(“yao”,’-11781′),
    array(“ye”,’-11604′),
    array(“yi”,’-11589′),
    array(“yin”,’-11536′),
    array(“ying”,’-11358′),
    array(“yo”,’-11340′),
    array(“yong”,’-11339′),
    array(“you”,’-11324′),
    array(“yu”,’-11303′),
    array(“yuan”,’-11097′),
    array(“yue”,’-11077′),
    array(“yun”,’-11067′),
    array(“za”,’-11055′),
    array(“zai”,’-11052′),
    array(“zan”,’-11045′),
    array(“zang”,’-11041′),
    array(“zao”,’-11038′),
    array(“ze”,’-11024′),
    array(“zei”,’-11020′),
    array(“zen”,’-11019′),
    array(“zeng”,’-11018′),
    array(“zha”,’-11014′),
    array(“zhai”,’-10838′),
    array(“zhan”,’-10832′),
    array(“zhang”,’-10815′),
    array(“zhao”,’-10800′),
    array(“zhe”,’-10790′),
    array(“zhen”,’-10780′),
    array(“zheng”,’-10764′),
    array(“zhi”,’-10587′),
    array(“zhong”,’-10544′),
    array(“zhou”,’-10533′),
    array(“zhu”,’-10519′),
    array(“zhua”,’-10331′),
    array(“zhuai”,’-10329′),
    array(“zhuan”,’-10328′),
    array(“zhuang”,’-10322′),
    array(“zhui”,’-10315′),
    array(“zhun”,’-10309′),
    array(“zhuo”,’-10307′),
    array(“zi”,’-10296′),
    array(“zong”,’-10281′),
    array(“zou”,’-10274′),
    array(“zu”,’-10270′),
    array(“zuan”,’-10262′),
    array(“zui”,’-10260′),
    array(“zun”,’-10256′),
    array(“zuo”,’-10254′)
    );
    //拼音转化函数
    function PinYin($str){
        $ret=””;
        for($i=0;$i<strlen($str);$i++){
            $p=ord(substr($str,$i,1)); //查看ASCII码
            if($p>160){ //如果是汉语,再多截取一个字符
                $q=ord(substr($str,++$i,1));
                $p=$p*256+$q-65536;
            }
            $ret.=$this->convert($p);
        }
        return $ret;
    }

    //转化函数
    function convert($num){
        if($num>0&&$num<160){ //假设不是汉字,间接回到相对字符
            return chr($num);
        }elseif($num<“-20319″||$num>”-10247″){
            return “”;
        }else{ //汉字,查找对应拼音
            for($i=count($this->_code)-1;$i>=0;$i–){
                if($this->_code[$i][1]<=$num)
                break;
            }
            return substr($this->_code[$i][0],0,1);
        }
    }
}

 

 

上边这一个是用来测试代码的:

复制代码 代码如下:

<?php

include_once ‘charset.class.php’;
header(‘Content-type: text/html;charset=utf-8’);

$charset=new charset();
foreach(array(‘武汉’,’中国’,’上海’) as $val){
 echo
iconv(‘gbk’,’utf-8//IGNORE’,strtoupper($charset->PinYin(mb_convert_encoding($val,’gbk’,’utf-8′))));
 echo ‘<br/>’;
}

三、那是网上找到个一个措施,经过测试可以正常使用,但对一部分生僻字或然尤其字符会有难题.

复制代码 代码如下:

function getFirstCharter($str){
 if(empty($str)){return ”;}
 $fchar=ord($str{0});
 if($fchar>=ord(‘A’)&&$fchar<=ord(‘z’)) return
strtoupper($str{0});
 $s1=iconv(‘UTF-8′,’gb2312’,$str);
 $s2=iconv(‘gb2312′,’UTF-8’,$s1);
 $s=$s2==$str?$s1:$str;
 $asc=ord($s{0})*256+ord($s{1})-65536;
 if($asc>=-20319&&$asc<=-20284) return ‘A’;
 if($asc>=-20283&&$asc<=-19776) return ‘B’;
 if($asc>=-19775&&$asc<=-19219) return ‘C’;
 if($asc>=-19218&&$asc<=-18711) return ‘D’;
 if($asc>=-18710&&$asc<=-18527) return ‘E’;
 if($asc>=-18526&&$asc<=-18240) return ‘F’;
 if($asc>=-18239&&$asc<=-17923) return ‘G’;
 if($asc>=-17922&&$asc<=-17418) return ‘H’;
 if($asc>=-17417&&$asc<=-16475) return ‘J’;
 if($asc>=-16474&&$asc<=-16213) return ‘K’;
 if($asc>=-16212&&$asc<=-15641) return ‘L’;
 if($asc>=-15640&&$asc<=-15166) return ‘M’;
 if($asc>=-15165&&$asc<=-14923) return ‘N’;
 if($asc>=-14922&&$asc<=-14915) return ‘O’;
 if($asc>=-14914&&$asc<=-14631) return ‘P’;
 if($asc>=-14630&&$asc<=-14150) return ‘Q’;
 if($asc>=-14149&&$asc<=-14091) return ‘R’;
 if($asc>=-14090&&$asc<=-13319) return ‘S’;
 if($asc>=-13318&&$asc<=-12839) return ‘T’;
 if($asc>=-12838&&$asc<=-12557) return ‘W’;
 if($asc>=-12556&&$asc<=-11848) return ‘X’;
 if($asc>=-11847&&$asc<=-11056) return ‘Y’;
 if($asc>=-11055&&$asc<=-10247) return ‘Z’;
 return null;

}

您可能感兴趣的篇章:

  • PHP提取汉语首字母
  • php
    拿到汉字拼音首字母的函数
  • 用PHP提取中国和英国文词语以及数字的首字母的措施介绍
  • 利用PHP获取汉字的拼音(全体与首字母)
  • php
    粤语字符串首字母的获取函数分享
  • php获取汉字首字母的函数
  • 享受一段PHP制作的华语拼音首字母工具类
  • php已毕字符串首字母大写和单词首字母大写的艺术
  • php已毕字符串首字母转换成大写的情势
  • php取得字符串首字母的法子
  • PHP完毕获取中国和英国文首字母
  • php获取英文姓名首字母的主意
  • php获取汉字拼音首字母的章程

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图