Скачиваем картинку при помощи cURL

Бывает ситуация, когда Вам необходимо получить изображение с другого сайта, но в настройках конфигурации Вашего сервера отключена опция «allow_url_fopen», или у Вас не получается получить изображение с помощью file_get_contents. Тогда Вы можете воспользоваться средствами cURL.

Как это работает?

Для начала убедитесь, что на Вашем веб-сервере имеется библиотека cURL. Создайте каталог, в который будет производиться запись изображений, например img. Установите на этот каталог права для записи (обычно 0755 или 0777).

Создайте рядом с этим каталогом файл PHP и добавьте в него следующий код:

<?php
function save_image($img,$path){
	$curl = curl_init($img);
	curl_setopt($curl, CURLOPT_HEADER, 0);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl, CURLOPT_BINARYTRANSFER,1);
	$content = curl_exec($curl);
	curl_close($curl);
	if (file_exists($path)) :
		unlink($path);
	endif;
	$fp = fopen($path,'x');
	fwrite($fp, $content);
	fclose($fp);
}

$img = 'http://www.google.com/images/icons/ui/doodle_plus/doodle_plus_google_logo_on_grey.gif';
$path = 'img/logo.gif';
save_image($img, $path);
?>

Как Вы видите, в переменную $img мы добавляем ссылку на изображение, которое хотим сохранить к себе, указываем в переменную $path путь до каталога и с каким именем будет сохранено изображение. После этого вызываем функцию save_image($img, $path), в которую передаем соответствующие параметры.

В качестве примера на наш сервер сохраняется изображение логотипа Google.

Также Вы можете скачать код скрипта из вложения в конце статьи

Комментарии

Здесь еще никто не оставлял комментарии.

Добавить комментарий