名著阅读 > 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 > 8.1.4 下载二维码 >

8.1.4 下载二维码

二维码生成后,可以在浏览器中另存为本地图片,但如果有很多二维码,则用程序下载比较方便。

下面使用CURL获取图片的所有信息,并将图片数据保存为一个文件。一个完整的下载代码如下。


 1 $ticket = "gQHi8DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0UweTNxNi1sdlA3Rkly
       RnNKbUFvAAIELdnUUgMEAAAAAA==";
 2 
 3 $url = "https:// mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($ticket);
 4 $imageInfo = downloadWeixinFile($url);
 5 
 6 $filename = "qrcode.jpg";
 7 $local_file = fopen($filename, 'w');
 8 if (false !== $local_file){
 9     if (false !== fwrite($local_file, $imageInfo["body"])) {
10         fclose($local_file);
11     }
12 }
13 
14 function downloadWeixinFile($url)
15 {
16     $ch = curl_init($url);
17     curl_setopt($ch, CURLOPT_HEADER, 0);    
18     curl_setopt($ch, CURLOPT_NOBODY, 0);    // 只取body头
19     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
20     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
21     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
22     $package = curl_exec($ch);
23     $httpinfo = curl_getinfo($ch);
24     curl_close($ch);
25     returnarray_merge(array('body' =>$package), array('header' =>$httpinfo)); 
26 }
  

这样在程序当前目录就会生成一个包含二维码的图片文件。