通常,某些网站会由于版权原因禁止外部页面访问其图片资源,包括直接在浏览器中访问和在其他网站引用,如果试图通过以上方式访问图片资源会返回403禁止访问。
但有时候我们为了一些个人用途又需要这些图片,所以为了解决这个问题,需要想办法绕过网站的防盗链机制。
一般来说,网站的防盗链机制是通过判断请求的来源域名来进行验证的,那么就可以通过Curl模拟访问来源,来绕过防盗链机制。
具体如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php // Curl Function function curl_get_redirects($url,$refer){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_REFERER, $refer); $result = curl_exec($curl); curl_close($curl); return $result; } // Use $url = $imagesUrl; $refer = 'http://images/resource/domain/'; $image = curl_get_redirects($url,$refer); |
其中$url是图片地址,$refer是模拟的访问来源,一般设为图片所在网站的首页地址即可
之后将Curl获取到的图片文件保存到本地就可以了
1 2 3 4 5 6 7 |
<?php // Save image to file $img_fileName = $imageName.'.jpg'; $img_filePath = "/var/www/your/images/folder/".$img_fileName; $fp = fopen($img_filePath, 'w'); fwrite($fp, $image); fclose($fp); |
这样就获取了我们想要的图片
There are no comments yet