<?php include_once 'Pinyin.php'; echo Pinyin::getPinyin("早上好"); echo Pinyin::getShortPinyin("早上好");
<?php /** * Created by PhpStorm. * User: jifei * Date: 15/6/25 */ include_once 'Pinyin.php'; echo Pinyin::getPinyin("ну╔¤║├", 'gb2312'); echo Pinyin::getShortPinyin("ну╔¤║├", 'gb2312');
/** * 新 注册接口 * * @request int $phone 用户注册手机号码 * @request int $code 用户注册手机验证码 * @request string $username 用户名 * @request string $password 用户密码 * @request string $intro User intro. * @request int $sex 用户性别,1:男,2:女,default:1 * @request string $location 格式化的地区地址,format:“省 市 区/县” * @request int $province 地区-县/直辖市 areaId * @request int $city 地区-市/直辖市区县 areaID * @request int $area 地区-区/县/直辖市村 * @request string $avatarUrl 用户头像URL * @request int $avatarW 用户头像宽度 * @request int $avatarH 用户头像宽度 * @return array * @author Seven Du <*****@*****.**> **/ public function signIn() { $phone = floatval($this->data['phone']); // 手机号码 $code = intval($this->data['code']); // 验证码 $username = t($this->data['username']); // 用户名 $password = $this->data['password']; // 密码 $intro = $this->data['intro'] ? formatEmoji(true, t($this->data['intro'])) : ''; // 用户简介 $sex = intval($this->data['sex']); in_array($sex, array(1, 2)) or $sex = 1; // 默认 男 1.男,2女 $location = t($this->data['location']); // 地区文字 $province = intval($this->data['province']); // 地区 - 省 $city = intval($this->data['city']); // 地区 - 市 $area = intval($this->data['area']); // 地区 - 区/县 $avatarUrl = t($this->data['avatarUrl']); // 用户头像URL $avatarW = intval($this->data['avatarW']); // 用户头像宽度 $avatarH = intval($this->data['avatarH']); // 用户头像高度 $register = model('Register'); $config = model('Xdata')->get('admin_Config:register'); // 配置 /* 判断用户手机号码可用性 */ if (!$register->isValidPhone($phone)) { return array('status' => 0, 'message' => $register->getLastError()); /* 判断用户名是否可用 */ } elseif (!$register->isValidName($username)) { return array('status' => 0, 'message' => $register->getLastError()); /* 判断验证码是否正确 */ } elseif (!$register->isValidRegCode($code, $phone)) { return array('status' => 0, 'message' => $register->getLastError()); /* 判断头像传递信息是否完整 */ } elseif (!$avatarUrl or !$avatarW or !$avatarH) { return array('status' => 0, 'message' => '用户头像上传不完整'); /* 密码判断 */ } elseif (!$register->isValidPasswordNoRepeat($password)) { return array('status' => 0, 'message' => $register->getLastError()); /* 格式化地区地址判断 */ } elseif (!$location) { return array('status' => 0, 'message' => '格式化地区地址不能为空'); /* 地区判断 */ } elseif (!$province or !$city) { return array('status' => 0, 'message' => '请完整的选择地区'); } $userData = array('login_salt' => rand(10000, 99999)); // 用户基本资料数组 $userData['password'] = model('User')->encryptPassword($password, $userData['login_salt']); // 用户密码 $userData['uname'] = $username; // 用户名 $userData['phone'] = $phone; // 用户手机号码 $userData['sex'] = $sex; // 用户性别 $userData['location'] = $location; // 格式化地址 $userData['province'] = $province; // 省 $userData['city'] = $city; $userData['area'] = $area; // 地区 $userData['intro'] = $intro; // 用户简介 $userData['ctime'] = time(); // 注册时间 $userData['reg_ip'] = get_client_ip(); // 注册IP /* 用户是否默认审核 */ $userData['is_audit'] = 1; $config['register_audit'] and $userData['is_audit'] = 0; $userData['is_active'] = 1; // 默认激活 $userData['is_init'] = 1; // 默认初始化 $userData['first_letter'] = getFirstLetter($username); // 用户首字母 /* 用户搜索 */ $userData['search_key'] = $username . ' ' . $userData['first_letter']; preg_match('/[\\x7f-\\xff]+/', $username) and $userData['search_key'] .= ' ' . Pinyin::getShortPinyin($username, 'utf-8'); $uid = model('User')->add($userData); // 添加用户数据 if (!$uid) { return array('status' => 0, 'message' => '注册失败'); } // 注册失败的提示 /* 添加默认用户组 */ $userGroup = $config['default_user_group']; empty($userGroup) and $userGroup = C('DEFAULT_GROUP_ID'); is_array($userGroup) and $userGroup = implode(',', $userGroup); model('UserGroupLink')->domoveUsergroup($uid, $userGroup); /* 添加双向关注用户 */ if (!empty($config['each_follow'])) { model('Follow')->eachDoFollow($uid, $config['each_follow']); } /* 添加默认关注用户 */ $defaultFollow = $config['default_follow']; $defaultFollow = explode(',', $defaultFollow); $defaultFollow = array_diff($defaultFollow, explode(',', $config['each_follow'])); empty($defaultFollow) or model('Follow')->bulkDoFollow($uid, $defaultFollow); /* 保存用户头像 */ $avatarData = array('picurl' => $avatarUrl, 'picwidth' => $avatarW); $scaling = 5; // 未知参数 $avatarData['w'] = $avatarW * $scaling; $avatarData['h'] = $avatarH * $scaling; $avatarData['x1'] = 0; $avatarData['y1'] = 0; $avatarData['x2'] = $avatarData['w']; $avatarData['y2'] = $avatarData['h']; model('Avatar')->init($uid)->dosave($avatarData, true); if ($userData['is_audit'] == 1) { $_POST['login'] = $phone; $_POST['password'] = $password; return $this->authorize(); } return array('status' => 2, 'message' => '注册成功,请等待审核'); }
/** * 认证方法 --using * @param varchar oauth_token * @param varchar oauth_token_secret * @return array 状态+提示 */ public function register() { $phone = floatval($this->data['phone']); // 手机号码 $username = '******' . t($this->data['username']); // 用户名 $password = $this->data['password']; // 密码 $sex = intval($this->data['sex']); in_array($sex, array(1, 2)) or $sex = 1; // 默认 男 1.男,2女 $register = model('Register'); $config = model('Xdata')->get('admin_Config:register'); // 配置 /* 判断用户手机号码可用性 */ if (!$register->isValidPhone($phone)) { return array('status' => 0, 'msg' => $register->getLastError()); /* 判断用户名是否可用 */ } elseif (!$register->isValidName($username)) { return array('status' => 0, 'msg' => $register->getLastError()); /* 密码判断 */ } elseif (!$register->isValidPasswordNoRepeat($password)) { return array('status' => 0, 'msg' => $register->getLastError()); } $userData = array('login_salt' => rand(10000, 99999)); // 用户基本资料数组 $userData['password'] = model('User')->encryptPassword($password, $userData['login_salt']); // 用户密码 $userData['uname'] = $username; // 用户名 $userData['phone'] = $phone; // 用户手机号码 $userData['sex'] = $sex; // 用户性别 $userData['ctime'] = time(); // 注册时间 $userData['reg_ip'] = get_client_ip(); // 注册IP /* 用户是否默认审核 */ $userData['is_audit'] = 1; $config['register_audit'] and $userData['is_audit'] = 0; $userData['is_active'] = 1; // 默认激活 $userData['is_init'] = 1; // 默认初始化 $userData['first_letter'] = getFirstLetter($username); // 用户首字母 /* 用户搜索 */ $userData['search_key'] = $username . ' ' . $userData['first_letter']; preg_match('/[\\x7f-\\xff]+/', $username) and $userData['search_key'] .= ' ' . Pinyin::getShortPinyin($username, 'utf-8'); $uid = model('User')->add($userData); // 添加用户数据 if (!$uid) { return array('status' => 0, 'msg' => '注册失败'); } // 注册失败的提示 /* 添加默认用户组 */ $userGroup = $config['default_user_group']; empty($userGroup) and $userGroup = C('DEFAULT_GROUP_ID'); is_array($userGroup) and $userGroup = implode(',', $userGroup); model('UserGroupLink')->domoveUsergroup($uid, $userGroup); /* 添加双向关注用户 */ if (!empty($config['each_follow'])) { model('Follow')->eachDoFollow($uid, $config['each_follow']); } /* 添加默认关注用户 */ $defaultFollow = $config['default_follow']; $defaultFollow = explode(',', $defaultFollow); $defaultFollow = array_diff($defaultFollow, explode(',', $config['each_follow'])); empty($defaultFollow) or model('Follow')->bulkDoFollow($uid, $defaultFollow); return array('status' => 1, 'msg' => '注册成功'); }
/** * 截取一段话首字母 * * @param string $string 截取的字符串 * @param string $encode 编码,默认 utf-8 * @param string $unknow 不知道的字符返回什么,默认返回第一个字 * @return string * @author Seven Du <*****@*****.**> **/ function getShortPinyin($string, $encode = 'utf-8', $unknow = null) { $pre = $unknow !== null ? $unknow : mb_substr($string, 0, 1, $encode); $string = Pinyin::getShortPinyin($string, $encode); $string = mb_substr($string, 0, 1); $string = strtoupper($string); /* 转为大写 */ if (!in_array($string, explode(',', 'Q,W,E,R,T,Y,U,I,O,P,A,S,D,F,G,H,J,K,L,M,N,B,V,C,X,Z'))) { $string = $pre; } return $string; }