php-curl下载文件


/**curl下载文件
 * url 地址
 	savePath 保存目录
 	filename 文件名
 */
function downFile($url, $savePath = './',$filename=''){
	  //$url = 'http://www.baidu.com/img/bdlogo.png';
	  /*
	  HTTP/1.1 200 OK
	  Connection: close
	  Content-Type: image/jpeg
	  Content-disposition: attachment; filename="cK4q4fLsp7YOlaqxluDOafB.jpg"
	  Date: Sun, 18 Jan 2015 16:56:32 GMT
	  Cache-Control: no-cache, must-revalidate
	  Content-Length: 963704
	  */
	  $ch = curl_init();
	  if(stripos($url,"https://")!==FALSE){
	        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
	        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	    }
	  curl_setopt($ch, CURLOPT_URL, $url);
	  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	  curl_setopt($ch, CURLOPT_HEADER, TRUE);  //需要response header
	  curl_setopt($ch, CURLOPT_NOBODY, FALSE);  //需要response body
	  $response = curl_exec($ch);
	  //分离header与body
	  $header = '';
	  $body = '';
	  if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {
		    $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); //头信息size
		    $header = substr($response, 0, $headerSize);
		    $body = substr($response, $headerSize);
	  }
	  curl_close($ch);
	  // print_r($header);die;
	  //文件名
	  $arr = array();
	  if(!$filename){
	  		preg_match('#filename="(.*?)"#', $header, $arr);
	  		$filename=$arr[1];
	  }
	    $fullName = rtrim($savePath, '/') . '/' .$filename;
	    
	    //判断目录是否存在|创建目录
	    $basePath = dirname($fullName);
	    if (!file_exists($basePath)) {
	    	mkdir($basePath,0777,true);
	    }
	    //保存文件
	    if (file_put_contents($fullName, $body)) {
		    return $fullName;
		}

	  return false;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值