微信头像跨域问题解决

    $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',);
    //获取微信用户的个人信息中的微信头像 $userinfo['headimgurl']
     $url=$userinfo['headimgurl'];
 
     $curl = curl_init();
     curl_setopt($curl, CURLOPT_URL, $url);
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
     curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
     curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

     $datas = curl_exec($curl);
     $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
     curl_close($curl);
    //把URL格式的图片转成base64_encode格式的!
     if ($code == 200) {    
         $imgBase64Code = "data:image/jpeg;base64," . base64_encode($datas);
     }

转载自别人的博客,我删去了把base64图片保存至本地的步骤,直接把图片以base64 的形式存入数据库中。
如果有微信头像需要整合成一张整图时遇到跨域问题,可以试一下这个办法,亲测有效!

PS. 搜了很多人的解决办法都是使用 nginx 代理,这里我用的服务器是apache且公司的部署环境为window,服务器上面跑的不止一个项目,我对nginx不懂就没有用这个方法,希望可以帮助大家!

你可能感兴趣的:(跨域,微信)