最好的办法就是直接读取图片文件,用到php中一个常用的函数file_get_contents(图片地址),意思是读取远程的一张图片,在输出就完事。非常简单~话不多说,直接上代码
<?php
header("Content-type: image/jpeg");//防止输出乱码
$img=$_GET['img'];//通过get方法获取图片地址
echo file_get_contents($img);//角色上场
?>
使用方法:新建一个img.php文件,把代码贴进去。你的链接/img.php?img=图片链接
下面是我搭建好的,搭建可以直接使用: https://www.bsdy.net/img.php?url=
再说说更变态的方法,接一下我演示一个判断请求来源的防盗链!!
这里就要用到PHP 中强大的curl,他可以伪造头部来源IP,来源地址,甚至可以使用proxy,PHP爬虫必备。
我们来简单分析一下吧。
这是一个连接,点击A标签可以看到一张图片,
,但是我们直接打开这张图片是不行的,因为他判断了请求的链接。如果不是在那个链接打开的,就会返回404,
,再继续分析,我们看一下请求refer,
可以看到必须是refer这个地址才行。那么我们就只有欺骗他的服务器了。废话不多说,直接贴代码,这是我封装好的CURL
<?php
function Crack_img($url,$refer){
$ch = curl_init($url); //设置图片url
curl_setopt ($ch, CURLOPT_REFERER, $refer); //伪造请求来源
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
header("Content-type:image/jpeg"); //输出二进制流图片
return $data;
}
$url = $_GET["url"];
$refer = $_GET['refer'];
echo Crack_img($url,$refer);
使用方法:新建PHP文件,粘贴进去,命名.php?url=图片地址&refer=来源地址
这是我搭建好的,大家可以直接使用:https://www.bsdy.net/img.php?url=图片地址&refer=来源地址