PHP远程下载文件到本地

 PHP
 Likt
 

PHP

本篇文章封装了一个用于在服务器端下载文件的PHP函数
可适用于在服务器端下载各类文件,方便传输,也可用于远程拉取文件本地化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function httpcopy($url,$file="",$timeout=120){
$file=empty($file)?pathinfo($url,PATHINFO_BASENAME):$file;
$dir=pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir)&&@mkdir($dir,0755,true);
$url=str_replace("","%20",$url);

if(function_exists('curl_init')){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
$temp=curl_exec($ch);
if(@file_put_contents($file,$temp)&&!curl_error($ch)){
return $file;
}else{
return false;
}
}else{
$opts=array(
"http"=array(
"method"="GET",
"header"="",
"timeout"=$timeout
)
);
$context=stream_context_create($opts);
if(@copy($url,$file,$context)){
//$http_response_header
return $file;
}else{
return false;
}
}
}