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

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

По этому адресу: 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

Решение

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

<?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 сам.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]