最近一直忙于公司的微信开发,但是上线之后出现种种问题,出现问题感觉是好事,不断充实自己,公司一直用的easywechat类获取用户信息,但是有些有表情的用户信息却取不到!主要原因是表情字节长度不符合表设置的UTF8,网上很多说修改表结构!但是感觉有点不妥!于是自己写了个正则完美解决这个问题!
$user = wechat()->user->get($openid);
if ($user['subscribe'] == 1) {
M('acard')->where(['fdcWX' => $openid])->save(['fdbSubScribe' => 1]);
$nickname=$user['nickname'];
// debuglog($nickname);
// debuglog('789789789');
$str=json_encode($nickname);//处理微信昵称必须先json_encode转换才能处理
$preg=preg_match("/#(\\\\u[ed][0-9a-f]{3})|(\\\\u[ed][0-9a-f]{3})/", $str);
if($preg==1){//表明用户昵称有表情符号,必须截取
$nickname=preg_replace("/#(\\\\u[ed][0-9a-f]{3})|(\\\\u[ed][0-9a-f]{3})/", "", $str);
$nickname=json_decode($nickname);
}
// debuglog($nickname);
M('acard')->where(['fdcWX' => $openid])->save(['fdiSex'=>$user['sex'],'fdcNick' =>$nickname, 'fdcImage' => $user['headimgurl'], 'fdbSubScribe' => 1]);
}
$member=M('acard')->where(['fdcWX' => $openid])->find();