Использование cURL для загрузки больших файлов XML - PullRequest
3 голосов
/ 20 февраля 2010

Я работаю с PHP и мне нужно проанализировать несколько довольно больших XML-файлов (без сжатия 50-75 МБ). Однако проблема заключается в том, что эти XML-файлы хранятся удаленно, и их необходимо будет загрузить, прежде чем я смогу их проанализировать.

Подумав об этой проблеме, я думаю, что использование вызова system () в PHP для инициации передачи cURL, вероятно, является лучшим способом избежать тайм-аутов и ограничений памяти PHP.

Кто-нибудь делал что-то подобное раньше? В частности, что я должен передать cURL, чтобы загрузить удаленный файл и убедиться, что он сохранен в локальной папке по моему выбору?

1 Ответ

1 голос
/ 20 февраля 2010

Вы можете попробовать это:

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
}
...