分享一段PHP製作的中文拼音首字母工具類

2021-06-27 14:37:26 字數 2379 閱讀 8693

**很簡單,這裡就不多bb了,大家看注釋吧,注釋都看不懂的小夥伴,求放過php!!!

複製** **如下:

<?php

/*** 漢字拼音首字母工具類

* 注: 英文的字串:不變返回(包括數字) eg .abc123 => abc123

* 中文字串:返回拼音首字元 eg. 測試字串 => cszfc

* 中英混合串: 返回拼音首字元和英文 eg. 我i我j => wiwj

* eg.

* $py = new str2py();

** $result = $py->getinitials('周杰倫');

** //獲取首字母

* $result = $py->getfirststring('abc'); //a

* $resutl = $py->getfirststring("周杰倫"); //z**/

class str2py

/*** 中文字串 substr

** @param string $str

* @param int $start

* @param int $len

* @return string

*/private function _msubstr($str, $start, $len)

else

}if (ord(substr($str, $i, 1)) > 129)

}return $result;

}/**

* 字串切分為陣列 (漢字或者乙個字元為單位)

** @param string $str

* @return array

*/private function _cutword($str)

else

}return $words;

}/**

* 判斷字元是否是ascii字元

** @param string $char

* @return bool

*/private function _isascii($char)

/*** 判斷字串前3個字元是否是ascii字元

** @param string $str

* @return bool

*/private function _isasciis($str)

$result = array_count_values($chars);

if (empty($result['no']))

return false;

}/**

* 獲取中文字串的拼音首字元

** @param string $str

* @return string

*/public function getinitials($str)

$result = array();

if ($this->_charset == 'utf-8')

$words = $this->_cutword($str);

foreach ($words as $word)

$code = ord(substr($word, 0, 1)) * 1000 + ord(substr($word, 1, 1));

/* 獲取拼音首字母a--z */

if (($i = $this->_search($code)) != -1)

}return strtoupper(implode('', $result));

}/**

* 20140624 wangtianbao 獲取首字母

* @param string $str

* @return string

*/public function getfirststring($str)

else

}private function _getchar($ascii)

elseif ($ascii >= 65 && $ascii <= 90)

elseif ($ascii >= 97 && $ascii <= 122)

else

}/**

* 查詢需要的漢字內碼(gb2312) 對應的拼音字元( 二分法 )

** @param int $code

* @return int

*/private function _search($code)

$tmp = (int) round(($lower + $upper) / 2);

if (!isset($data[$tmp]))

else

if ($data[$middle] < $code)

else if ($data[$middle] == $code)

else}}

}

PHP製作的中文拼音首字母工具類

漢字拼音首字母工具類 注 英文的字串 不變返回 包括數字 eg abc123 abc123 中文字串 返回拼音首字元 eg.測試字串 cszfc fpy new strtofpy result fpy getinitials 揚 獲取首字母 result fpy getfirststring abc...

如何利用PHP來擷取一段中文字串而不出現亂碼

code 1 e818e36f81 功能 擷取全形和半形混合的字串以避免亂碼 引數 str cut 需要截斷的字串 length 允許字串顯示的最大長度 function substr cut str cut,length 30 return str cut code 1 e818e36f81 說明...

php獲取一段時間內的法定工作日

首先,需要自己在後台建立乙個表 content cooper 這個結構如下 create table my content cooper id int 11 unsigned not null auto increment comment 節假日記錄表id year tinyint 3 not nu...