- 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) {
来源: https://www.php1.cn/detail/php-b2c1b45234.html