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

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

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

Создайте каталог, в который будет производиться запись изображений, например img, установите на этот каталог права для записи (0755 или 0777). Создайте рядом с этим каталогом файл PHP и добавьте в него следующий код:

<?php
$img_url = "http://www.google.com/images/icons/ui/doodle_plus/doodle_plus_google_logo_on_grey.gif";
$Headers = @get_headers($img_url);
if(preg_match("|200|", $Headers[0])) {
	$image = file_get_contents($img_url);
	file_put_contents(dirname(__FILE__)."/img/logo.gif", $image);
} else {
	echo "Not Found";
}
?>

Разберем подробнее. Для начала в переменную $img_url мы задаем ссылку на изображение, которое хотим скачать. Далее получаем заголовки этой ссылки, и если нам возвращается контент, проверяем наличие кода ошибки, если код равен 200 (OK, т.е. такая страница существует), выполняем функцию сохранения изображения. Для этого передаем контент ссылки в переменную $image = file_get_contents($img_url); и сохраняем в наш каталог с указаннием именем файла file_put_contents(dirname(__FILE__).»/img/logo.gif», $image);

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

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

Комментарии

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

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