zblog教程:php绕过图片防盗链的方法

用户反馈分享海报插件无法生成问题,查询原因:用户引用的外链图片地址设置了防采集

zblog教程:php绕过图片防盗链的方法 - 第1张 - 菜鸟建站

解决方法:

伪造curl 伪装来路(referer)

<?php
$url = $_GET['sharePicurl'];
$dir = pathinfo($url);
$host = $dir['dirname'];
$refer = $host.'/';
$ajax = Network::Create();	     	 	  		
$ajax->open('GET', $url);     			 	 	    	  	 	      		 	 	 	
$ajax->enableGzip();		    		    		
$ajax->setTimeOuts(120, 120, 0, 0);	 			    			  	 	
$ajax->setRequestHeader('referer', $host);    			  	
$ajax->send();
$ext = strtolower(substr(strrchr($url,'.'),1,10));
$types = array(
     'gif'=>'image/gif',
     'jpeg'=>'image/jpeg',
     'jpg'=>'image/jpeg',
     'jpe'=>'image/jpeg',
     'png'=>'image/png',
    );
$type = $types[$ext] ? $types[$ext] : 'image/jpeg';
header("Content-Type:".$type);
echo $ajax->responseText;

其他PHP(以上方法仅适用zblog)

<?php
$url = $_GET["imgurl"];
$dir = pathinfo($url);
$host = $dir['dirname'];
$refer = $host.'/';

$ch = curl_init($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);

$ext = strtolower(substr(strrchr($url,'.'),1,10));
$types = array(
            'gif'=>'image/gif',
            'jpeg'=>'image/jpeg',
            'jpg'=>'image/jpeg',
            'jpe'=>'image/jpeg',
            'png'=>'image/png',
);
$type = $types[$ext] ? $types[$ext] : 'image/jpeg';
header("Content-type: ".$type);
echo $data;

好了,以上就是php绕过图片防盗链的方法全部方法,更多php教程zblog教程关注菜鸟建站

猜你喜欢

zblog教程:伪静态别名问题,没有别名使用ID

zblog教程:伪静态别名问题,没有别名使用ID

这个问题呢是在zblog论坛看到的有些产品文章需要设置别名 类似于www.zblogcn.com/xxxx.html但是有些新闻文章不用设置别名想以默认ID显示 类似于www.zblogcn.com/1111.html问题来了 如何伪静态判断是否有别名 有别名就采用别名伪静态 没有别名就采用ID伪静态现在设置别名伪静态 有的文章会默认为  文章标题...

zblog入门使用图文教程 轻松上手操作指南

zblog入门使用图文教程 轻松上手操作指南

zblog基础设置上图就是zblog基础设置的全部配置项。一个一个来说明:网站地址:自动获取当前打开页面的域名,不能手动修改。下面两个开关分别是固定网站域名和固定后台域名,这两个选项顾名思义是固定域名用的,一般做https和做301的时候会需要,没有特别需求可以不用打开。网站标题:给你网站起一个名字(重要,基本上网站每一个页面都会显示这个)。网站副标题:介绍...

发表评论