微信对外提供了API接口,让我们可以通过授权的方式获取到自己公众号里面的文章,或者你也可以通过爬虫去抓取微信的文章,但是微信的图片默认是不允许外部调用的
这里我找到了两种方案
第一种在JS中提前把图片加载到本地,然后从本地缓存中读取图片
var showImg = function (url) {var frameid = "frameimg" + Math.random();window.img = "<img id="img" src="" + url + "?" + Math.random() + "" /><script>window.onload = function() { parent.document.getElementById("" + frameid + "").height = document.getElementById("img").height+"px"; }<" + "/script>";return "<iframe id="" + frameid + "" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>";}
第二种
用PHP模拟浏览器请求
$url = $request->input("url");$ch = curl_init();$httpheader = array("Host" => "mmbiz.qpic.cn","Connection" => "keep-alive","Pragma" => "no-cache","Cache-Control" => "no-cache","Accept" => "textml,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8","User-Agent" => "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36","Accept-Encoding" => "gzip, deflate, sdch","Accept-Language" => "zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4");$options = array(CURLOPT_HTTPHEADER => $httpheader,CURLOPT_URL => $url,CURLOPT_TIMEOUT => 5,CURLOPT_FOLLOWLOCATION => 1,CURLOPT_RETURNTRANSFER => true);curl_setopt_array( $ch , $options );$result = curl_exec( $ch );curl_close($ch);header("Content-type: image/jpg");echo $result;exit;
两种方法类似,我目前用的JS的方式,测试过可以用