Laravel 小程序授权用户昵称带符号获取不到授权用户信息的问题 3ff8
2018-08-10 17:52
676 查看
由于有些微信用户的昵称是带表情符号的,授权存用户昵称的时候由于数据库类型问题存不进去,改了数据库类型也不行,所以就找了一些过滤方法, 亲测有效:
注册接口
public function register(Request $request){
$avatar = $request->input("userimage");
$nickname_new = $request->input("username");
$weixin_openid = $request->input("openid");
$nickname = $this->filter($nickname_new);//过滤后的用户昵称 之后直接判断用户是否授权然后储存数据库就行
}
过滤接口
/**
* $str 微信昵称
**/
public function filter($str) {
if($str){
$name = $str;
$name = preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $name);
$name = preg_replace('/xE0[x80-x9F][x80-xBF]‘.‘|xED[xA0-xBF][x80-xBF]/S','?', $name);
$return = json_decode(preg_replace("#(\\\ud[0-9a-f]{3})#","",json_encode($name)));
}else{
$return = '';
}
return $return;
}
然后问题就解决了。
注册接口
public function register(Request $request){
$avatar = $request->input("userimage");
$nickname_new = $request->input("username");
$weixin_openid = $request->input("openid");
$nickname = $this->filter($nickname_new);//过滤后的用户昵称 之后直接判断用户是否授权然后储存数据库就行
}
过滤接口
/**
* $str 微信昵称
**/
public function filter($str) {
if($str){
$name = $str;
$name = preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $name);
$name = preg_replace('/xE0[x80-x9F][x80-xBF]‘.‘|xED[xA0-xBF][x80-xBF]/S','?', $name);
$return = json_decode(preg_replace("#(\\\ud[0-9a-f]{3})#","",json_encode($name)));
}else{
$return = '';
}
return $return;
}
然后问题就解决了。
相关文章推荐
- java 微信授权后获取微信用户信息昵称乱码问题 解决
- Java 微信登录授权后获取微信用户信息昵称乱码问题解决
- 微信小程序新的授权方式,获取用户信息
- 微信小程序授权获取用户详细信息openid的实例详解
- 微信小程序判断用户是否需要再次授权获取个人信息
- 微信小程序授权获取用户详细信息openid的实例详解
- 【微信小程序】用户首次进入小程序拒绝授权,如何再次调用授权页面,获取用户信息userInfo
- [已解决]小程序获取用户信息的问题
- 微信小程序授权获取用户详细信息openid的实例详解
- Android 微信授权登录、获取Wx用户信息,解决无法回调问题
- CAS客户端.NET集成单点登录获取不到登录用户信息的问题
- 微信小程序获取用户openid,头像昵称信息,后台java代码
- 小程序获取用户信息无法得到问题
- 微信小程序获取用户信息“授权失败”场景的处理
- 关于微信小程序拒绝授权后,重新授权并获取用户信息
- Android 微信登录昵称乱码问题,及获取微信用户信息
- 微信小程序授权获取用户详细信息openid
- 关于淘宝应用毋须授权即可获取用户信息的问题
- 微信开发之获取OAuth2.0网页授权认证和获取用户信息进行关联(转:http://playxinz.iteye.com/blog/2249634)
- 支付宝 网页授权 获取用户信息