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

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

小云云
小云云Original
2018-02-02 17:30:433915Durchsuche

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":[]}';

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);

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']));

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']);
    }
    //快来写你的注册或者修改代码吧!
}

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;
}

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);
            }
        }
    }
}

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!

Stellungnahme:
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