Heim > WeChat-Applet > WeChat-Entwicklung > Implementierungsmethode zum Speichern des Benutzeravatars auf dem Server nach der WeChat-Autorisierung

Implementierungsmethode zum Speichern des Benutzeravatars auf dem Server nach der WeChat-Autorisierung

小云云
Freigeben: 2018-02-02 17:30:43
Original
3981 Leute haben es durchsucht

In diesem Artikel erfahren Sie hauptsächlich, wie Sie den Avatar des Benutzers nach der WeChat-Autorisierung auf dem Server speichern. Ich werde nicht viel über die Autorisierung sagen folgendes Format:

$user_info = '{"openid":"xx","nickname":"nice花椒.","sex":2,"language":"zh_CN","city":"杭州","province":"浙江","country":"中国","headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTJPpziaqOoIpGia9ZVj9fheAwLmTiavV4rxR40NQ1zPQPyiaMY58FEISDIfpn0q5VeeXliaKyiaiabgK2ZHg\/0","privilege":[]}';
Nach dem Login kopieren

Headimgurl direkt in der Datenbank speichern, der Fehler kommt.

Kommen wir ohne Umschweife zum Punkt:

WeChat gibt das JSON-Format zurück

$user_arr = json_decode($user_info, true);
Nach dem Login kopieren

Ermitteln Sie die OpenID des Benutzers und vergleichen Sie die Datenbank, um festzustellen, ob es sich um die erste handelt Autorisierung

$mem_info= $member->getuserinfo(array('openid'=>$user_arr['openid']));
Nach dem Login kopieren

Erste Autorisierung oder die Avatar-Link-Adresse unterscheidet sich vom letzten Mal

if(!$mem_info || $mem_info['wximage']!=$user_info['headimg']){
    $headimgurl = saveheadimgurl($user_arr['headimgurl']);
    $headimg ? 0 : $headimg='lib/avata.jpg' ;
    if($mem_info['wximage']!=$user_info['headimg']){
        unlink($mem_info['headimg']);
    }
    //快来写你的注册或者修改代码吧!
}
Nach dem Login kopieren

Speichern Sie das Bild

function saveheadimgurl($headimg){
    $header = array(
         'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0',      
         'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',      
         'Accept-Encoding: gzip, deflate',
    );
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $headimg);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER,$header);
    $dataimg = curl_exec($curl);
    $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close($curl);  
    if ($code == 200) {     
        $imgBase64Code = "data:image/jpeg;base64," . base64_encode($dataimg);
    }  
    $img_content=$imgBase64Code;
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)){   
         $type = $result[2];
         create(DOFILESPATH."head"); 
         $new_file = DOFILESPATH."head/".md5(uniqid(rand())).".{$type}"; 
         if (file_put_contents($new_file, base64_decode(str_replace($result[1],'', $img_content))))  
         {  
             return $new_file;
         }
     }
     return false;
}
Nach dem Login kopieren

Erstellen Sie die Datei am angegebenen Ort Standort

function create($dir){
    if(is_dir($dir)){
        $temp = explode('/',$dir);
        $cur_dir = '';
        for($i=0; $i<count($temp); $i++){
            $cur_dir .= $temp[$i].'/';
            if(!is_dir($cur_dir)){
                @mkdir($cur_dir,777);
            }
        }
    }
}
Nach dem Login kopieren

Ich hoffe, Sie können für alle nützlich sein.

Verwandte Empfehlungen:

Wie verwende ich die autorisierte WeChat-Anmeldung? Fassen Sie die Verwendung von Beispielen für autorisierte WeChat-Anmeldungen zusammen ,

Detaillierte Erläuterung der WeChat-Autorisierung für die WeChat-Entwicklung

IOS-Implementierung des Beispielcodes für die autorisierte WeChat-Anmeldefunktion


Das obige ist der detaillierte Inhalt vonImplementierungsmethode zum Speichern des Benutzeravatars auf dem Server nach der WeChat-Autorisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage