Заставьте cURL записывать данные по мере их получения

У меня есть следующий код PHP, который я нашелВот:

function download_xml()
{
    $url = 'http://tv.sygko.net/tv.xml';

    $ch = curl_init($url);
    $timeout = 5;

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

    $data = curl_exec($ch);

    echo("curl_exec was succesful"); //This never gets called

    curl_close($ch);
    return $data;
}

$my_file = 'tvdata.xml';
$handle = fopen($my_file, 'w');
$data = download_xml();
fwrite($handle, $data);

Что я'я пытаюсь сделать, это скачать XML по указанному URL и сохранить его на диск. Тем не менее, он останавливается примерно на 80% и никогда не достигаетecho позвонить послеcurl_exec вызов. Я'Я не уверен, почему, но я верю, что это потому, что у него заканчивается память. Поэтому я хотел бы спросить, можно ли заставить curl записывать данные в файл каждый раз, когда он скачал, скажем, 4 КБ. Если это невозможно, кто-нибудь знает способ получить файл XML, сохраненный по URL-адресу, загруженному и сохраненному на моем диске с помощью php?

Большое спасибо, Бен.

РЕДАКТИРОВАТЬ: Это код сейчас, он не работает. Он записывает данные в файл, но все еще только около 80% документа. Может быть, это нет, потому что это превышает память, но какая-то другая причина? Я действительно могуНе верьте, что так сложно скопировать файл с URL на диск ...

    

Ответы на вопрос(4)

Ваш ответ на вопрос