php代码实现远程下载文件到本地,PHP CURL实现远程下载文件到本地

PHP CURL实现远程下载文件到本地

PHP CURL实现远程下载文件到本地,该函数返回结果包括下载耗用的时间,保存的文件名,以及使用的下载方式。写的比较粗糙,如果大家有好的建议及改进方案,欢迎留言给我哦!

具体代码如下:

//$result=httpcopy('http://www.phpernote.com/image/logo.gif');

echo '

';print_r($result);

function httpcopy($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);

$result=array('fileName'=>'','way'=>'','size'=>0,'spendTime'=>0);

$startTime=explode(' ',microtime());

$startTime=(float)$startTime[0]+(float)$startTime[1];

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)){

$result['fileName']=$file;

$result['way']='curl';

$result['size']=sprintf('%.3f',strlen($temp)/1024);

}

}else{

$opts=array(

'http'=>array(

'method'=>'GET',

'header'=>'',

'timeout'=>$timeout

)

);

$context=stream_context_create($opts);

if(@copy($url,$file,$context)){

$result['fileName']=$file;

$result['way']='copy';

$result['size']=sprintf('%.3f',strlen($context)/1024);

}

}

$endTime=explode(' ',microtime());

$endTime=(float)$endTime[0]+(float)$endTime[1];

$result['spendTime']=round($endTime-$startTime)*1000;//单位:毫秒

return $result;

}

您可能感兴趣的文章php获取远程图片并下载保存到本地

PHP 利用 Curl Functions 实现多线程抓取网页和下载文件

php判断远程文件是否存在的办法

php获取远程文件的大小

php读取目录并列表显示目录中的文件的函数

php清空(删除)指定目录下的文件,不删除目录文件夹的方法

php获取目录所有文件并将结果保存到数组的程序

利用SecureCRT上传、下载文件(使用sz与rz命令)

/php/2208.htmlwww.phpzy.comtrue/php/2208.htmlTechArticlePHP CURL实现远程下载文件到本地 PHP CURL实现远程下载文件到本地,该函数返回结果包括下载耗用的时间,保存的文件名,以及使用的下载方式。写的比较粗糙,如果大家有好的建议及改...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值