> php教程 > php手册 > PHP CURL实现远程下载文件到本地

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

WBOY
풀어 주다: 2016-06-13 09:05:33
원래의
1022명이 탐색했습니다.

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

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

具体代码如下:

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

echo '<pre class="brush:php;toolbar:false">';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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿