亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php獲取漢字首字母的函數(shù)

2020-03-22 20:14:25
字體:
供稿:網(wǎng)友
網(wǎng)上的方法有不少,都是一樣的原理,按照需求,做了一下版本的html' target='_blank'>class類文件,主要功能是:功能明確,易于修改維護(hù)和擴(kuò)展; 英文的字串:不變返回(包括數(shù)字);中文字符串:返回拼音首字符; 中英混合串: 返回拼音首字符和英文。該算法采用了二分法查找,修復(fù)了之前字母Z讀取成Y的錯(cuò)誤。好東西要收藏,故在此留下印記,以供后人考證!
復(fù)制代碼 代碼如下:
?php
/**
* Modified by http://iulog.com @ 2013-05-07
* 修復(fù)二分法查找方法
* 漢字拼音首字母工具類
* 注: 英文的字串:不變返回(包括數(shù)字) eg .abc123 = abc123
* 中文字符串:返回拼音首字符 eg. 測(cè)試字符串 = CSZFC
* 中英混合串: 返回拼音首字符和英文 eg. 我i我j = WIWJ
* eg.
* $py = new str2PY();
* $result = $py- getInitials('啊吧才的餓飛就好i就看了嗎你哦平去人是他uv我想一在');
*/
class str2PY
{
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',
209185 = 'Y',
212209 = 'Z',
);
private $_charset = null;
/**
* 構(gòu)造函數(shù), 指定需要的編碼 default: utf-8
* 支持utf-8, gb2312
*
* @param unknown_type $charset
*/
public function __construct( $charset = 'utf-8' )
{
$this- _charset = $charset;
}
/**
* 中文字符串 substr
*
* @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;
}
/**
* 字符串切分為數(shù)組 (漢字或者一個(gè)字符為單位)
*
* @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;
}
/**
* 判斷字符是否是ascii字符
*
* @param string $char
* @return bool
*/
private function _isAscii( $char )
{
return ( ord( substr($char,0,1) ) 160 );
}
/**
* 判斷字符串前3個(gè)字符是否是ascii字符
*
* @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;
}
/**
* 獲取中文字串的拼音首字符
*
* @param string $str
* @return string
*/
public function getInitials( $str )
{
if ( empty($str) ) return '';
if ( $this- _isAscii($str[0]) && $this- _isAsciis( $str )){
return $str;
}
$result = array();
if ( $this- _charset == 'utf-8' ){
$str = iconv( 'utf-8', 'gb2312', $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));
}
private function _getChar( $ascii )
{
if ( $ascii = 48 && $ascii = 57){
return chr($ascii); /*數(shù)字*/
}elseif ( $ascii =65 && $ascii =90 ){
return chr($ascii); /* A--Z*/
}elseif ($ascii =97 && $ascii =122){
return chr($ascii-32); /* a--z*/
}else{
return '-'; /*其他*/
}
} /**
* 查找需要的漢字內(nèi)碼(gb2312) 對(duì)應(yīng)的拼音字符( 二分法 )
*
* @param int $code
* @return int
*/
private function _search( $code )
{
$data = array_keys($this- _pinyins);
$lower = 0;
$upper = sizeof($data)-1;
$middle = (int) round(($lower + $upper) / 2);
if ( $code $data[0] ) return -1;
for (;;) {
if ( $lower $upper ){
return $data[$lower-1];
}
$tmp = (int) round(($lower + $upper) / 2);
if ( !isset($data[$tmp]) ){
return $data[$middle];
}else{
$middle = $tmp;
}
if ( $data[$middle] $code ){
$lower = (int)$middle + 1;
}else if ( $data[$middle] == $code ) {
return $data[$middle];
}else{
$upper = (int)$middle - 1;
}
}
}
}
?
PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
日韩成年人视频| 午夜伦欧美伦电影理论片| 182tv在线播放| 久久综合色8888| 国产精品久久久久久久久影视| 中文字幕一区二区av| 99久久精品网站| 国产黄在线看| 日产国产高清一区二区三区| 亚洲精品自在在线观看| 国产cdts系列另类在线观看| 欧美精品欧美精品系列c| 午夜一区二区三区四区| 女人一区二区三区| 国产精品九九视频| 日本私人影院在线观看| 亚洲一区二区三区成人在线视频精品| 秘密基地免费观看完整版中文| 国产亚洲精品午夜高清影院| 日本xxxxxwwwww| 免费看成人吃奶视频在线| 亚洲一区二区免费在线观看| 欧美日韩在线免费| 性xxxxfreexxxxx欧美丶| 一线天自拍视频| 亚洲国产高清高潮精品美女| 黄色动漫网站入口| 色琪琪一区二区三区亚洲区| 一本到一区二区三区| 久久精品magnetxturnbtih| 久久激情五月丁香伊人| 久草热8精品视频在线观看| 欧美日韩国产精品一区| 一个色综合导航| 国产无套在线观看| 波多野结衣在线观看一区二区三区| 性高潮免费视频| 亚洲丝袜美腿综合| 亚洲一区二区免费视频软件合集| 日韩和欧美一区二区| 91国产精品成人| 亚洲久久一区二区| 精品一区二区三区中文字幕老牛| gv天堂gv无码男同在线观看| 久热久精久品这里在线观看| 吉吉日韩欧美| 国产中文字幕第一页| 91精品婷婷国产综合久久性色| 日韩大陆毛片av| 国产91精品青草社区| www.99色.com| 欧美日韩视频第一区| 久久久久国产一区二区三区| 国产丝袜精品第一页| 日韩av综合中文字幕| 97久久超碰国产精品| 在线观看中文字幕不卡| 中文字幕999| 在线观看17c| 粉嫩av一区二区三区免费观看| 久久福利精品| 日本人妻伦在线中文字幕| 久久久精品国产网站| 永久91嫩草亚洲精品人人| 女女互磨互喷水高潮les呻吟| 天堂www中文在线资源| 国产中文字幕视频在线观看| 欧美暴力喷水在线| 一区二区三区欧美视频| 免费在线观看av| 国产精品久久久久一区二区国产| 国产97在线播放| 丁香桃色午夜亚洲一区二区三区| 色999久久久精品人人澡69| 国产欧美一区二区三区视频| 2025韩国理伦片在线观看| 丰满少妇中文字幕| 欧美成人午夜精品免费| 亚洲一级二级在线| 亚洲一级视频在线观看| 亚洲精品国产无天堂网2021| 午夜羞羞小视频在线观看| 精品第一国产综合精品aⅴ| 亚洲国产综合视频在线观看| 成人国产精品免费| 欲色天天网综合久久| 欧美成人精品一区二区男人看| 91丨porny丨首页| 欧美午夜xxx| 久久精品久久久精品美女| 国产精品爱久久久久久久小说| 777片理伦片在线观看| 中文字幕在线亚洲| 午夜影院在线观看国产主播| 午夜婷婷国产麻豆精品| 插菊花综合1| 在线视频一区二区三区在线播放| japanese在线| 中文字幕有码av| 好吊视频一区二区三区四区| 在线精品福利| 亚洲精品免费一区亚洲精品免费精品一区| 韩国日本一区| 亚欧洲精品视频在线观看| 91精品久久久久久久蜜月| 青娱乐国产在线视频| 欧美日韩高清免费| 尤物视频在线免费观看| 伊人久久久久久久久久| 在线观看欧美成人| www.久久久久久久久久| 青青草国产免费一区二区下载| 日韩极品精品视频免费观看| 日本一区二区动态图| 欧美亚洲国产一区二区三区| av无码精品一区二区三区| 国产精品入口日韩视频大尺度| 国产不卡精品| 日韩av首页| 亚洲国产精品日韩专区av有中文| 久久久之久亚州精品露出| 8x8ⅹ国产精品一区二区二区| 国产成人精品在线看| 国产一级揄自揄精品视频| 日本免费精品| 日本一区二区在线视频观看| 日韩第一区第二区| 日本三级电影网| av先锋影音资源站| aa免费在线观看| 本网站久久精品| 国产一区二区三区在线视频| 成人a'v在线播放| 超碰av女优在线| 亚洲精品水蜜桃| 91极品身材尤物theporn| 国产成人在线免费观看| 四虎影院观看视频在线观看| 国产精品福利一区| 欧美人与性动交α欧美精品济南到| 亚洲欧美经典视频| 久久久久久久久久伊人| 欧美日韩美女视频| 少妇av一区二区| 被黑人猛躁10次高潮视频| 国产精品露脸视频| www.久久com| 全部孕妇毛片丰满孕妇孕交| 99国产精品私拍| 欧美资源一区| 欧美成人蜜桃| 日本福利在线观看| 永久免费看mv网站入口78| 7777在线视频| 欧美日韩一区二区区| 亚洲欧美日韩国产精品| 久久视频精品在线观看| 精品成人免费一区二区在线播放| 亚洲永久视频| 免费成人av在线播放| av网站在线免费观看| 日本一级淫片色费放| 国产精品亚洲片夜色在线| 只有精品亚洲| 精品视频无码一区二区三区| 美女视频免费一区| 奇米综合一区二区三区精品视频| www.色综合| 热久久视久久精品18亚洲精品| 日韩porn| 一本色道久久综合狠狠躁的番外| 蜜臀91精品国产高清在线观看| 女人一区二区三区| 黄色特一级视频| 91手机视频在线观看| 国产日韩视频一区| 成人性生交大片免费观看网站| 北条麻妃一区二区三区在线观看| 精品国产三级a在线观看| 欲求不满的岳中文字幕| 亚洲美女91| 亚洲成人一区二区在线观看| www.亚洲资源| 毛片免费不卡| 亚洲第一综合| 色婷婷综合中文久久一本| 无限资源日本好片| 亚洲免费网站观看视频| av首页在线| 91爱视频在线| 国产精品美女一区二区三区四区| 5566中文字幕一区二区| 极品久久久久久| 欧美高清3dfreexxxx性| av中文字幕免费观看| 桃花色综合影院| 欧美乱妇20p| 在线看视频你懂的| brazzers欧美精品| 国产91在线播放精品| 亚洲综合婷婷| 国产精品一区亚洲| 国产精品久久国产愉拍| 你真棒插曲来救救我在线观看| 中国av一区| 亚洲精品少妇网址| 欧洲一区二区日韩在线视频观看免费| 国产欧美一区二区精品仙草咪| 日韩 国产 一区| 日本一本草久在线中文| xfplay精品久久| 欧美日韩国产成人在线| 国产精品日本一区二区| 中文字幕亚洲一区在线观看| 亚洲福利免费| 日韩视频在线观看视频| 日韩小视频在线播放| 狠狠精品干练久久久无码中文字幕| 四虎影视18库在线影院| 日韩一区二区三区在线播放| 中文字幕欧美国产| 亚洲不卡一卡2卡三卡4卡5卡精品| 麻豆视频免费在线播放| 亚洲羞羞网站| 91精品影视| 国产免费久久av| www.av天天| 日韩中文字幕一区二区高清99| 国产热re99久久6国产精品| 亚洲一区二区在线播放相泽| 奇米影视亚洲| 欧美系列电影免费观看| 欧美黄色片在线观看| 成人av在线天堂| 国产毛片久久久久久| 五月婷婷深爱五月| 日韩一区二区电影在线观看| 97caocao| 精品国产一区a| 亚洲 日本 欧美 中文幕| 欧美视频一区二区三区四区| 亚洲爆乳无码精品aaa片蜜桃| v片在线观看| 日日夜夜精品| 久久精品一区二区三区不卡| 三级黄色在线视频| 精品中文一区| 在线视频国产日韩| 亚洲成a人片在线www| www.中文字幕在线| 一区二区不卡久久精品| 日韩伦理在线一区| jizzjizzjizzjizzjizzjizzjizz| 超级砰砰砰97免费观看最新一期| 五月天黄色网址| 亚洲成人观看| 日韩精品一区二区在线观看| 亚洲精品成人一区| 欧美性受ⅹ╳╳╳黑人a性爽| 91精品视频在线播放| 国产情侣久久| 91亚洲精品久久久蜜桃网站| 午夜在线精品| 亚洲第一会所| 天堂中文在线观看| 日韩欧美一区二区三区不卡视频| 日本成人手机在线| 一区二区三区四区视频| 日本成人福利| 日韩免费一级| 伊人久久国产精品| 国产精品久久91| 福利视频大全| 亚洲国产精品久久久男人的天堂| 婷婷视频在线观看| 欧美三级一级片| 亚洲bt天天射| www.色小姐com| 免费在线视频观看| 午夜天堂影视香蕉久久| 亚洲一区二区精品3399| 亚洲第一免费看片| 久久精品国产亚洲5555| 美女视频第一区二区三区免费观看网站| 已婚少妇美妙人妻系列| 国产一区二区三区在线观看网站| 超碰在线资源站| 国产精品综合一区二区三区| 你懂的视频网址| 成全在线观看免费完整动漫| 国产一级一级国产| 蜜桃视频成人在线观看| 国产一区在线看| 成人在线免费看视频| 久久久久久久久97| 成人深夜福利| 日本特级黄色片| 久久中文字幕免费| a天堂中文在线88| 久久精品视频一区二区| 麻豆av在线导航| 久久精品国产精品亚洲毛片| 国产男女猛烈无遮挡91| 色婷婷一区二区三区四区| 国产美女高潮在线观看| 成人亚洲激情网| 一区二区三区四区在线| 久久99国产成人小视频| v天堂福利视频在线观看| 久草影视在线| 玉足女爽爽91| 中文字幕乱码日本亚洲一区二区| 欧美日韩中文字幕一区二区三区| 欧美影院午夜播放| 国产精品国模在线| 2018高清国产日本一道国产| 九九99玖玖| 色综合久综合久久综合久鬼88| 精品视频久久久久| 国产精品久久久久久久久免费高清| 国产精品外围在线观看| 国产人妖一区| 国产中文在线播放| xxxx日本免费| 99亚洲乱人伦aⅴ精品| 欧美午夜小视频| 7777精品久久久久久| 久久精品国产亚洲av香蕉|