Как реализовать запись в файл с переменной с помощью curl?

Рейтинг: 0Ответов: 1Опубликовано: 01.02.2015

В нижеприведенным данном коде скачивается и записывается файл 11.zip:

     $ch = curl_init ();
     curl_setopt ($ch, CURLOPT_URL, "http://sotmarket.ru/xml_files/11.zip");
     $fp = fopen ("11.zip", "w+");
     curl_setopt ($ch, CURLOPT_FILE, $fp);
     curl_setopt ($ch, CURLOPT_REFERER, "http://sotmarket.ru/xml_files/11.zip");
     curl_setopt ($ch, CURLOPT_AUTOREFERER, 1);
     curl_exec ($ch);
     curl_close ($ch);
     fclose ($fp);

Подскажите, как реализовать запись в файл с переменной. Вот, например, есть файл $my_file = '11.zip', как его записать на сервер именно с помощью curl?
file_put_contents(), fwrite() не подходят для решения задачи.

В вышепоказанном скрипте содержимое курл берет по ссылке, а нужно, чтоб он брал с переменной.

Ответы

▲ 3

Либо так:

$name = "11.zip";
if(is_writable($name)) {
    set_time_limit(0);
    $fp = fopen ($name, "w+");
    $ch = curl_init("http://sotmarket.ru/xml_files/{$name}");
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt ($ch, CURLOPT_AUTOREFERER, 1);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
}else{
    echo 'Файл недоступен для записи';
}

Либо так:

$name = "11.zip";
if(is_writable($name)) {
    set_time_limit(0);
    $ch = curl_init("http://sotmarket.ru/xml_files/{$name}");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_AUTOREFERER, 1);
    $data = curl_exec ($ch);
    curl_close ($ch);
    $file = fopen($name, "w+");
    fputs($file, $data);
    fclose($file);
}else{
    echo 'Файл недоступен для записи';
}