[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачивание файла с CURL
aybulat
Не могу понять в чем проблема. Скрипт создает выходной файл, но не записывает в него.


$name="11.zip";
$fp=fopen("./".$name,"w");//создаем пустой файл
fclose($fp);
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, "http://sotmarket.ru/xml_files/11.zip");
$fp = fopen ("./".$name, "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);




Спустя 4 минуты, 42 секунды (13.10.2011 - 12:21) Игорь_Vasinsky написал(а):
чёт я не уверен что с архивами такое канает...

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

file_put_contents("./11.zip", $data);



Спустя 5 минут, 2 секунды (13.10.2011 - 12:26) aybulat написал(а):
Должно, подобный скрипт я использовал несколько лет назад, с архивами работало. А теперь не пойму в чем ошибка, может в настройках сервера что или в php.ini?

Спустя 1 минута, 44 секунды (13.10.2011 - 12:28) Игорь_Vasinsky написал(а):
а cURL то раскоментирован в php.ini?

Спустя 2 минуты, 15 секунд (13.10.2011 - 12:30) aybulat написал(а):
да

Спустя 2 минуты, 19 секунд (13.10.2011 - 12:32) Игорь_Vasinsky написал(а):
 $ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, "http://sotmarket.ru/xml_files/11.zip");
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_REFERER, "http://sotmarket.ru/xml_files/11.zip");
curl_setopt ($ch, CURLOPT_AUTOREFERER, 1);
$data = curl_exec ($ch);
fclose ($fp);


архив много весит?

сделай

echo $data;


есть вывод?

Спустя 4 минуты, 7 секунд (13.10.2011 - 12:37) aybulat написал(а):
Архив - 1,17Mb
echo $data; - выводит: 1

в архиве 4 файла .xml

Спустя 8 минут, 19 секунд (13.10.2011 - 12:45) Игорь_Vasinsky написал(а):
вот глянь с комментами http://phpforum.ru/index.php?showtopic=50868
утя скорее каких то curl_seopt() нехватает

Спустя 5 минут, 6 секунд (13.10.2011 - 12:50) Игорь_Vasinsky написал(а):
вот вроде как надо

$ch = curl_init();                              // Инициализация сеанса
curl_setopt($ch, CURLOPT_URL, "http://sotmarket.ru/xml_files/11.zip"); // Заходим на сайт
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Приказываем вернуть страницу в переменную
$data= curl_exec($ch); // Забираем
curl_close($ch); // Завершаем сеанс
echo $data; // Оказываемся в вашем ящике


так есть вывод?

Спустя 10 минут, 34 секунды (13.10.2011 - 13:01) aybulat написал(а):
301 Moved Permanently

А что он должен вывести, если загружается архив? Выводит 1, если использовать предыдущий скрипт

Спустя 8 минут, 21 секунда (13.10.2011 - 13:09) Игорь_Vasinsky написал(а):
по моему примеру - он должен был считат весь архив(крякозябрами)

Спустя 53 минуты, 18 секунд (13.10.2011 - 14:02) aybulat написал(а):
Проблема решена, спасибо.
Вот окончательный код

$name="11.zip";
$fp=fopen($name,"w");//создаем пустой файл
fclose($fp);
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, "http://sotmarket.ru/xml_files/11.zip");
$fp = fopen ($name, "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_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);

Спустя 1 час, 6 минут, 42 секунды (13.10.2011 - 15:09) Игорь_Vasinsky написал(а):
в php 5 уж можно вместо fopen() юзать file_get_contents() и file_put_contents()

Спустя 2 минуты, 34 секунды (13.10.2011 - 15:11) Winston написал(а):
Можно упростить
Свернутый текст
$name="11.zip";
$fp=fopen($name,"w");//создаем пустой файл

$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, "http://sotmarket.ru/xml_files/11.zip");
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.