2010-02-20 103 views
3

我正在使用PHP,需要解析大量相當大的XML文件(50-75MB未壓縮)。但是,這個問題是這些XML文件遠程存儲,需要先下載才能解析它們。使用cURL下載大型XML文件

考慮到這個問題,我認爲在PHP中使用system()調用來啓動cURL傳輸可能是避免超時和PHP內存限制的最佳方法。

有沒有人做過這樣的事情?具體來說,我應該傳遞什麼來下載遠程文件並確保它保存到我選擇的本地文件夾?

回答

1

你可以試試這個:

function download($src, $dst) { 
     $f = fopen($src, 'rb'); 
     $o = fopen($dst, 'wb'); 
     while (!feof($f)) { 
      if (fwrite($o, fread($f, 2048)) === FALSE) { 
        return 1; 
      } 
     } 
     fclose($f); 
     fclose($o); 
     return 0; 
} 
download($url,$target); 
if (file_exists($target)){ 
    # do your stuff 
} 
+0

這工作,但顯然是受到PHP超時 - 這是在這種情況下沒有好。 – ndg 2010-02-20 18:05:11