@dagnew005

Как вывести файл через cURL?

Здравствуйте!

Пишу один граббер, столкнулся с проблемой, донор забанил мой IP.
Решил эту проблему используя CURLOPT_PROXY
Но вот скачать файл не получается
Так я отдавал файл:
$url = 'http://донор.ru/d/?fid='.trim($_GET['id']).'';

$get = get_headers($url, 1);

foreach ($get as $key => $value)
{
    $value = str_replace('filename=', 'filename='.COP.'_', $value);
    header(''.$key.': '.$value.'');
}
readfile($url);


Как теперь отдавать файл через cURL ?
Может кто даст готовое решение, гугл не помог.
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Может, вообще не качать?
Ну если сайт забанил твой IP - значит, он против того, чтобы его грабили.
Собирай свою инфу сам, а не тырь чужую.

А то так скоро на форумах спрашивать начнут, как вынести из квартиры вещи, если стоит железная дверь.
Ответ написан
Комментировать
zed1cus
@zed1cus
Web developer
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);  // URL файла
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: text/plain') );  // Заголовки по необходимости
curl_setopt($ch, CURLOPT_PROXY, 'XXX.XXX.XXX.XXX:port'); // Прокси по необходимости
$data = curl_exec($ch);

file_put_contents("filename.ext", $data);  // Сохранение файла на HDD

Остальные настройки курла по желанию)

Если нужно с запросом браузера о сохранении файла замени последнюю строчку на
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=filename.ext');
header('Content-Length: ' . strlen($data) );
echo $data;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы