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";