A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 303

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

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

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

Просмотров: 9096.
Подписаться на комментарии по 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')."'>"; ?>
Если возникнут вопросы по работе скрипта, задавайте их в комментариях ниже.

Кстати, после неаккуратного обращения с айпадом может пропасть подсветка. Ремонт ipad решит все проблемы в его функционировании или, если необходимо, поможет придать ему первозданный вид при помощи смены дисплея или корпуса.

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

  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. Функция корректирована.

  4. Homez | 15.06.2012 в 22:18:44 | #4

    Думаю, что следовало бы упомянуть в статье, что сам скриншот делается скриптом на стороннем сайте. Долго всматривался в код и не мог понять, а где собственно скриншот делается. Оказалось, что с помощью сервиса s-shot.ru.

  5. Mowshon | 16.06.2012 в 14:03:25 | #5

    Homez, Согласен, есть некая дезинформация, но по прочтению скрипта все становится понятно, функция file_get_contents получает данные с сервиса s-shot.ru отправляя ему адрес сайта. Можно считать данный пример как Lite версию решения данной проблемы (скриншот сайта).

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

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

Чтобы стать комментатором введите 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

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