php - 使用 cURL 下载大型 XML 文件

标签 php curl large-files transfer

我正在使用 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
}

关于php - 使用 cURL 下载大型 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2301915/

相关文章:

php - foreach 中 kohana orm find_all() 的奇怪行为

PHP MySQL "DELETE FROM ` 表` WHERE `id` = |未知列 `id`

php - 如何通过虚拟主机在一台服务器上安装两个单独的 phpmyadmin

powershell - 使用本 map 片作为输入使用 Google 图片搜索的脚本

database - 替代大型数据库

php - Laravel Bus Batch 待处理作业为负数

api - 将授权 header 添加到 http 请求时,cURL 中的 -u 是什么意思

php - Curl 不适用于 Nginx 和本地主机上的 PHP

open-source - 用于大型文本文件(> 200 MB)的图形化开源文本编辑器

java - 如何将大文本文件放入数组中?