PHP实现远程下载文件到本地
代码很简单就不多废话了,直接奉上:
<?php
echohttpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");
functionhttpcopy($url,$file="",$timeout=60){
$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{
returnfalse;
}
}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{
returnfalse;
}
}
}
?>
再来个远程下载文件到服务器
<formmethod="post">
<inputname="url"size="50"/>
<inputname="submit"type="submit"/>
</form>
<?php
//maximumexecutiontimeinseconds
set_time_limit(24*60*60);
if(!isset($_POST['submit']))die();
//foldertosavedownloadedfilesto.mustendwithslash
$destination_folder='temp/';
$url=$_POST['url'];
$newfname=$destination_folder.basename($url);
$file=fopen($url,"rb");
if($file){
$newf=fopen($newfname,"wb");
if($newf)
while(!feof($file)){
fwrite($newf,fread($file,1024*8),1024*8);
}
}
if($file){
fclose($file);
}
if($newf){
fclose($newf);
}
?>
以上所述就是本文的全部内容了,希望大家能够喜欢。