Делаем скриншот сайта - PHP Скрипт
Просмотров: 22036.
Подписаться на комментарии по 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')."'>"; ?>Если возникнут вопросы по работе скрипта, задавайте их в комментариях ниже.
Кстати, после неаккуратного обращения с айпадом может пропасть подсветка. Ремонт ipad решит все проблемы в его функционировании или, если необходимо, поможет придать ему первозданный вид при помощи смены дисплея или корпуса.
Еще записи по теме
- PHP: Постраничная навигация - вывод данных с использованием массива
- PHP: Как уменьшить количество HTTP запросов с помощью схемы data: URI
- Определяем местоположение посетителей используя HTML5 Geolocation API
- Установка eAccelerator 0.9.6.1 (apache2) на Debian 5
- PHP и Ruby on Rails: что лучше?
- Объявление и вызов функции PHP
- "Чистый код" путь к профессионализму
Комментариев: 5
Пример хороший но есть одно "но" - если сайт "донор" скринов будет недоступен, то тогда скрипт не будет работать тоже.
Для примера данный скрипт хорошо подходит, мне было необходимо именно функция по компактнее.
Спасибо, очень помогла Ваша статья!
Сервис s-shot.ru потерпел некоторые изменения, перешли с поддомена queue на mini. Функция корректирована.
Думаю, что следовало бы упомянуть в статье, что сам скриншот делается скриптом на стороннем сайте. Долго всматривался в код и не мог понять, а где собственно скриншот делается. Оказалось, что с помощью сервиса s-shot.ru.
Homez, Согласен, есть некая дезинформация, но по прочтению скрипта все становится понятно, функция file_get_contents получает данные с сервиса s-shot.ru отправляя ему адрес сайта. Можно считать данный пример как Lite версию решения данной проблемы (скриншот сайта).