PHP не может сделать это самостоятельно, поскольку он не включает библиотеку рендеринга HTML.
Вы можете найти внешний метод захвата скриншотов и связи с этим методом с помощью PHP.
Для начала вам понадобится настроить систему, чтобы делать скриншоты.Изучите IECapt (http://iecapt.sourceforge.net/), CutyCapt (http://cutycapt.sourceforge.net/) или khtml2png (http://khtml2png.sourceforge.net/)) и настройте один из них в системе.
Затем настройте PHP-скрипт, который будет выполнять () скриншот, принимая приложение и возвращаяданные в браузер.
Например:
<?php
$in_url = 'http://' . $_REQUEST['url']; // !!INSECURE!! In production, make sure to sanitize this input!
$filename = '/var/cutycapt/images/' . $_REQUEST['url'] . '.png'; // Will probably need to normalize filename too, this is just an illustration
// First check the file does not exist, if it does exist skip generation and reuse the file
// This is a super simple caching system that will help to reduce the resource requirements
if(!file_exists($filename)) {
exec('/usr/local/bin/CutyCapt --url="' . $_REQUEST['url'] . '" --out="' . $filename . '"');
}
// Second check if the file exists, either from a previous run or from the above generation routine
if(file_exists($filename)) {
header('Content-type: image/png');
print file_get_contents($filename);
} else {
header('Status: 500 Internal Server Error');
}
?>
Затем можно вызвать скрипт следующим образом:
http://localhost/screenshot.php?url=www.google.com
Создание скриншотов будетбыть интенсивно использующим процессор, поэтому я настоятельно рекомендую встроить какое-то кэширование файлов (то есть сохранить результаты вывода и проверить, есть ли у вас где-нибудь скриншот), возможно, даже систему очередей, чтобы ваш сервер скриншотов не получалперегружены.