PHP :: Curl не получить изображение из URL

0

У меня проблема с библиотекой PHP curl.

По этому URL: http://i.ebayimg.com/00/s/NTAwWDUwMA==/z/7KcAAOxyRhBS3lhE/$_1.JPG?set_id=8800005007 там изображение. Для "curl" изображение не существует.

Я очень смущен. Следуя моему методу:

public static function downloadImage($url, $pathToSave = "")
{
    $imageUrl = (string)$url;
    $ch       = curl_init($imageUrl);

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

    $raw = curl_exec($ch);
    curl_close($ch);

    if(file_exists($pathToSave))
    {
        unlink($pathToSave);
    }

    $fp = fopen($pathToSave, 'x');
    fwrite($fp, $raw);
    fclose($fp);

    return $pathToSave;
}
  • 0
    Возможный дубликат загрузки большого файла с помощью curl
  • 0
    Если вы попытаетесь выполнить базовый curl в ssh с путем, он не загрузится, если вы не укажете флаг -o. Я бы порекомендовал взглянуть на вышеуказанные настройки и попробовать некоторые из них.
Показать ещё 1 комментарий
Теги:
curl
ebay

1 ответ

2

Это работает для меня:

<?php
    $c = curl_init();
    curl_setopt($c,CURLOPT_URL,"http://i.ebayimg.com/00/s/NTAwWDUwMA==/z/7KcAAOxyRhBS3lhE/$_1.JPG?set_id=8800005007");
    curl_setopt($c,CURLOPT_RETURNTRANSFER,true);
    $img = curl_exec($c);
    file_put_contents('image.jpg',$img);
?>

Возможно, ваш сервер настроен по-разному, и вам нужно установить правильный user-agent, например:

curl_setopt($c,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36 OPR/27.0.1689.54');

... так как многие сайты отказываются обслуживать файлы, запрошенные самой CURL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню