程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 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;

      }

      }

      }

      ?>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved