介绍
这篇文章给大家分享的是有关如何实现微信授权后用户头像保存到服务器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
本文主要和大家分享微信授权后用户头像保存到服务器实现方法,最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下:
user_info 美元;=,& # 39;{“openid":“xx",“nickname":“好花椒!”,“sex": 2,“language":“zh_CN",“city":“杭州“,“province":“浙江“,“country":“中国“,“headimgurl":“http: wx.qlogo.cn \/\/\/mmopen \/vi_32 \/Q0j4TwGTfTJPpziaqOoIpGia9ZVj9fheAwLmTiavV4rxR40NQ1zPQPyiaMY58FEISDIfpn0q5VeeXliaKyiaiabgK2ZHg \/0“,“privilege": []} & # 39;;
直接把headimgurl入库保存,虫子来了。
话不多说,进入正题:
微信返回的是json格式
user_arr 美元;=,json_decode (user_info美元,,真的);
获取用户openid对比数据库,判断是不是首次授权
mem_info=美元,美元成员→getuserinfo(数组(& # 39;openid # 39;=祝辞user_arr美元[& # 39;openid # 39;]));
首次授权或者头像链接地址与上次不同
如果(! $ mem_info | |, mem_info美元[& # 39;wximage& # 39;] !=$ user_info [& # 39; headimg& # 39;)) { ,,,headimgurl 美元;=,saveheadimgurl ($ user_arr [& # 39; headimgurl& # 39;]); ,,,headimg 美元;?,0,:,$ headimg=& # 39; lib/avata.jpg& # 39;,; ,,,如果美元mem_info [& # 39; wximage& # 39;] !=$ user_info [& # 39; headimg& # 39;)) { ,,,,,,,分开($ mem_info [& # 39; headimg& # 39;]); ,,,} ,,,//快来写你的注册或者修改代码吧! }
保存图片
function saveheadimgurl (headimg美元){ ,,,header 美元;=,阵列( ,,,,,,,,& # 39;用户代理:,Mozilla/5.0, (Windows NT 6.1;, Win64;, x64;,房车:45.0),壁虎/20100101,Firefox/45.0 & # 39;,,,,,,, ,,,,,,,,& # 39;接收语言:,应用,zh型;q=0.8, en - us; q=0.5, en; q=0.3 & # 39;,,,,,,, ,,,,,,,,& # 39;接受编码:,gzip、,缩小# 39; ,,,); ,,,curl 美元;=,curl_init (); ,,,curl_setopt (CURLOPT_URL,卷发,美元,美元headimg); ,,,curl_setopt(卷、美元,CURLOPT_RETURNTRANSFER,,真的),,, ,,,curl_setopt(卷、美元,CURLOPT_FOLLOWLOCATION,,真的); ,,,curl_setopt(卷、美元,CURLOPT_HTTPHEADER,头美元); ,,,dataimg 美元;=,curl_exec($旋度); ,,,code 美元;=,curl_getinfo(卷、美元,CURLINFO_HTTP_CODE); ,,,curl_close ($ curl);,, ,,,if (code 美元;==,200),{,,,, ,,,,,,,imgBase64Code 美元;=,“数据:图像/jpeg; base64,“,只base64_encode ($ dataimg); ,,,},, ,,,img_content=imgBase64Code美元; ,,,if (preg_match(& # 39;/^(数据:\ s *形象\/(\ w +); base64,)/& # 39;,, img_content美元,导致美元)){,, ,,,,,,,,type 美元;=,因此美元[2]; ,,,,,,,,(干净自己的DOFILESPATH head");创建, ,,,,,,,,new_file 美元;=,DOFILESPATH !”头/?md5(函数(rand()))干净。{$类型},,, ,,,,,,,,if (写入(new_file美元,base64_decode (str_replace(结果[1],美元& # 39;& # 39;,,img_content美元)))),, ,,,,,,,,{,, ,,,,,,,,,,,,return new_file美元; ,,,,,,,,} ,,,,} ,,,,return 假; }
指定位置创建文件
function 创建(dir美元){ ,,,如果(is_dir (dir美元)){ ,,,,,,,temp 美元;=,爆炸(& # 39;/& # 39;$ dir); ,,,,,,,cur_dir 美元;=,& # 39;& # 39;; ,,,,,,,,(i=0;美元,美元i<计数(临时);,我+ +美元){ ,,,,,,,,,,,cur_dir 美元。=,临时($ i)强生# 39;美元/& # 39;; ,,,,,,,,,,,如果(! is_dir (cur_dir美元)){ ,,,,,,,,,,,,,,,@mkdir (cur_dir 777美元); ,,,,,,,,,,,} ,,,,,,,} null null如何实现微信授权后用户头像保存到服务器