Главная / PHP статьи > Парсим скриншот сайта - PHP скрипт

Парсим скриншот сайта - PHP скрипт

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

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

<?php function(адрес страницы, разрешение, размер, формат); ?>


разрешение - указывается в пикселях, например (1024x768)
размер - ограничивается максимальное значение высоты и ширины, масштабированной картинки
формат - может принимать два значения (JPEG|PNG), по умолчанию "JPEG")

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

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

<?php
function SiteScreen($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;
	 }
}
?>


Функция SiteScreen получает адрес сайта которому нужно делать снимок. Идет проверка на существование заранее сделанного скрина, если скрипт был запущен повторно для одного и того же сайта, то файл будет открываться из папки screens.
Запуск скрипа происходит таким образом:

<?php echo "<img src='".SiteScreen('www.site.ru')."'>"; ?>


Если у Вас возникли вопросы по работе скрипта, задавайте их в комментариях ниже.
8-09-2018, 17:38. Разместил: administrator
Вернуться назад