我正在使用 PHP,需要解析一些相当大的 XML 文件(50-75MB 未压缩)。然而,问题是这些 XML 文件是远程存储的,需要先下载才能解析它们。
考虑到这个问题后,我认为在 PHP 中使用 system() 调用来启动 cURL 传输可能是避免超时和 PHP 内存限制的最佳方法。
有没有人做过这样的事情?具体来说,我应该将什么传递给 cURL 以下载远程文件并确保将其保存到我选择的本地文件夹中?
我正在使用 PHP,需要解析一些相当大的 XML 文件(50-75MB 未压缩)。然而,问题是这些 XML 文件是远程存储的,需要先下载才能解析它们。
考虑到这个问题后,我认为在 PHP 中使用 system() 调用来启动 cURL 传输可能是避免超时和 PHP 内存限制的最佳方法。
有没有人做过这样的事情?具体来说,我应该将什么传递给 cURL 以下载远程文件并确保将其保存到我选择的本地文件夹中?
你可以试试这个:
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
}