Вопрос: Как при помощи PHP сделать скриншот сайтов?
Ответ: Никак !
Cредствами PHP делать скриншоты сайтов нельзя!
Можно использовать сервис сайта
http://www.artviper.net
Идём по ссылке
http://www.artviper.net/registerAPI.php
регистрируемся, необходимо вбить свой логин, емеил и урл сайта с которого будут идти запросы на создание скриншотов.
После этого на указанный емеил приходит письмо с ссылкой для подтверждения регистрации, после перехода по ней вам придёт ещё одно письмо, в котором рассказывается как использовать данный API и ваш персональный User ID и Secret Key.
Пример работы с API www.artviper.net
<?php $uID = '453242342232423'; $secretKey = '4343323'; $url="http://saintist.ru"; $hash=md5($url.$uID.$secretKey); ?> <input type=image src="http://www.artviper.net/screenshots/screener.php?url= <?=$url;?> &h=190&w=200&userID= <?=$uID;?> &hash= <?=$hash;?> " width="200px" height="190px" alt="" name="sub">
$uID -персональный id который пришёл в письме
$secretKey -секретный ключ который пришёл в письме
$url — адресс страницы которую нам нужно отскриншотить
$hash — обязательный параметр, в котором нам нужно передать MD5 хеш перечисленных переменных, обязательно соблюдать данный порядок.
Теперь дальше, в примере я вставляю скриншот прямо с их сайта, передаём нужные переменные их скрипту, помимо вышеописанных вы видите ещё h и w, что является высотой и шириной скриншота, который возвращает нам сервис(данные параметры не являются обязательными, если их не указать то сервис автоматически сформирует размер, который посчитает нужным)
А вот ещё несколько необязательных параметров, которые я не использовал, но которые могут некоторым пригодиться
&q — качество возвращаемого jpeg скриншота. можно задать значение в пределах от 30 и до 90
&d — задержка перед созданием скриншота
&sdx — ширина виртуального экрана с которого будет сделан скриншот, ну или как это правильно обозвать (разрешение монитора под которым делается скриншот) Может принимать значения 640, 800, 1024, 1280
&sdy — Тоже самое только высота.
Правильным подходом будет сохранение данных скриншотов себе на сайт, и дальнейшее использование уже со своего сервера.