2010-02-20 156 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