Делаем скриншот сайта - PHP Скрипт
Автор: Mowshon.
Опубликовано 28 октября 2011
и помечено как: сделать скриншот сайта, скрин сайта, скриншот сайта, скриншот страницы.
Просмотров: 1286.
Подписаться на комментарии по RSS.
В данной статье опишем как работает скрипт для создания скриншота любой страницы в интернете. Скриншот сайта это небольшая картинка, которая позволяет пользователю не заходя на сайт увидеть как тот выглядит. Скрипт будет полезен если ваш сайт занимается рекламированием других сайтов, например "Яндекс.Каталог" зайдите в любой раздел и вы увидите возле каждого сайта небольшую картинку того сайта которого рекламирует яндекс.
Функция будет работать следующим образом:
<?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')."'>"; ?>Если возникнут вопросы по работе скрипта, задавайте их в комментариях ниже.

Комментариев: 3
Пример хороший но есть одно "но" - если сайт "донор" скринов будет недоступен, то тогда скрипт не будет работать тоже.
Для примера данный скрипт хорошо подходит, мне было необходимо именно функция по компактнее.
Спасибо, очень помогла Ваша статья!
Сервис s-shot.ru потерпел некоторые изменения, перешли с поддомена queue на mini. Функция корректирована.