王新阳

wangxinyang

PHP保存远程文件到本地

echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");

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

	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(!curl_error($ch)){
			$dest = fopen($file, 'wb');
			fwrite($dest, $temp);
			fclose($dest);
			return $file;
		}else{
			return false;
		}
	}elseif(function_exists('copy')) {
		$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;
		}
	}else{
		$temp=fopen($url,'rb');
		if($temp){
			$newf=fopen($file,'wb');
			if($newf){
				while(!feof($temp)){
					fwrite($newf,fread($temp,1024*8),1024*8);
				}
			}
			if($temp){
				fclose($temp);
			}
			if($newf){
				fclose($newf);
			}
			return $file;
		}
	}
}
2015-12-30
2024-11-23 星期六 农历十月二十三