background image

PHP 实例:php 下载远程图片函数可可伪造来路

本篇文章是对 php 中的下载远程图片函数进行了详细的分析介绍,需要的朋友参考下
gurl 要下载的图片地址

$rfurl

 来路。如果目标图像做了防盗链设置,可以绕过。

$filename

 下载图片保存的文件名,相对路径,不要用

realpath

$gcookie

 调整 cookie 伪造的 cookie

$JumpCount

 跳转计数

$maxtime

 最大次数

调用方法:
DownImageKeep(“http:

//www.baidu.com/img/baidu_jgylogo2.gif”,””,”a.gif”,”",0,10);

代码如下:
 
<?php

function

 DownImageKeep(

$gurl

$rfurl

$filename

$gcookie

="", 

$JumpCount

=0, 

$maxtime

=30)

{

$urlinfos

 = GetHostInfo(

$gurl

);

$ghost

 = trim(

$urlinfos

['host']);

if

(

$ghost

=='')

{

return

 FALSE;

}

$gquery

 = 

$urlinfos

['query'];

if

(

$gcookie

=="" && !

empty

(

$rfurl

))

{

$gcookie

 = RefurlCookie(

$rfurl

);

}

$sessionQuery

 = "GET $gquery HTTP/1.1\r\n";

$sessionQuery

 .= "Host: $ghost\r\n";

$sessionQuery

 .= "Referer: $rfurl\r\n";

$sessionQuery

 .= "Accept: */*\r\n";

$sessionQuery

 .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)\r\n";

if

(

$gcookie

!="" && !preg_match("/[\r\n]/", 

$gcookie

))

{

$sessionQuery

 .= 

$gcookie

."\r\n";

}

$sessionQuery

 .= "Connection: Keep-Alive\r\n\r\n";