萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP實例代碼:實現遠程下載文件到本地的函數

PHP實例代碼:實現遠程下載文件到本地的函數

   經常寫采集器發布接口需要使用到遠程附件的功能,所以自己寫了一個PHP遠程下載文件到本地的函數,一般情況下已經夠用了,如果服務器支持CURL函數,程序則會優先選擇CURL,因為測試結果表明CURL的響應時間及資源占用率比file_get_contents小得多;如果大家有好的建議及改進方案,歡迎留言給我哦!

  代碼:

  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(@file_put_contents($file, $temp) && !curl_error($ch)) {

  return $file;

  } else {

  return false;

  }

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

  return false;

  }

  }

  }

  ?>

copyright © 萬盛學電腦網 all rights reserved