Делаем скриншот сайта - PHP Скрипт

Автор: Mowshon.
Опубликовано 28 октября 2011
в рубрике PHP, Примеры

Просмотров: 1286.
Подписаться на комментарии по RSS.

Делаем скриншот сайта - PHP Скрипт

В данной статье опишем как работает скрипт для создания скриншота любой страницы в интернете. Скриншот сайта это небольшая картинка, которая позволяет пользователю не заходя на сайт увидеть как тот выглядит. Скрипт будет полезен если ваш сайт занимается рекламированием других сайтов, например "Яндекс.Каталог" зайдите в любой раздел и вы увидите возле каждого сайта небольшую картинку того сайта которого рекламирует яндекс.

Функция будет работать следующим образом:

<?php function(адрес страницы, разрешение, размер, формат); ?>
разрешение - указывается в пикселях, например (1024x768)

размер - ограничивается максимальное значение высоты и ширины, масштабированной картинки

формат - может принимать два значения (JPEG|PNG), по умолчанию "JPEG"

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

Посмотрим сам скрипт изнутри:

<?php
function SiteScreenshot($url, $resolution='1024x768', $size='200', $format='png') {
	$Filename = md5($url.$size.$resolution).".jpg";
	// Директория где лежат скрины
	$ScreenshotDirectory = "screens/";
	// Проверяем если есть такой файл в папке скринов
	if(@is_file($ScreenshotDirectory.$Filename)) {
		return $ScreenshotDirectory.$Filename;
	}
	 else {
	 	$Image = @file_get_contents("http://mini.s-shot.ru/".$resolution."/".$size."/".$format."/?http://".$url);
		$OpenFile = fopen($ScreenshotDirectory.$Filename, "w+");
		// Сохраняем изображение
		$Write = fwrite($OpenFile, $Image);
		return $ScreenshotDirectory.$Filename;
	 }
}
?>
Функция SiteScreenshot получает адрес сайта которому нужно делать снимок. Идет проверка на существование заранее сделанного скрина, если скрипт был запущен повторно для одного и того же сайта, то файл будет открываться из папки screens.

Запускам скрипт вот таким образом:

<?php echo "<img src='".SiteScreenshot('live-code.ru')."'>"; ?>
Если возникнут вопросы по работе скрипта, задавайте их в комментариях ниже.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru blogger.com liveinternet.ru livejournal.ru memori.ru yahoo.com yandex.ru

Комментариев: 3

  1. Gob | 09.12.2011 в 18:55:31 | #1

    Пример хороший но есть одно "но" - если сайт "донор" скринов будет недоступен, то тогда скрипт не будет работать тоже.

    Для примера данный скрипт хорошо подходит, мне было необходимо именно функция по компактнее.

  2. Аноним | 22.02.2012 в 17:34:55 | #2

    Спасибо, очень помогла Ваша статья!

  3. Mowshon | 10.04.2012 в 00:46:19 | #3

    Сервис s-shot.ru потерпел некоторые изменения, перешли с поддомена queue на mini. Функция корректирована.

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором введите email и пароль. Напишите комментарий. В дальшейшем ваша связка email-пароль, позволит вам комментировать и редактировать свои данные. Не забудьте про активацию (инструкция придет на ящик, указанный при регистрации).

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)