Я знаю, что нет прямого способа сделать снимок экрана веб-страницы с PHP. Какой был бы самый простой способ достичь этого? Есть ли инструменты командной строки, которые могли бы сделать это, что я мог бы выполнить из PHP-скрипта (я думаю, что-то, что будет работать в «ОС NIX (OS X и / или Linux в частности)?
Изменить: Или, может быть, какой-то веб-сервис, с которым я мог бы получить доступ через SOAP или REST или …
Редактировать # 2: я нашел связанный с этим вопрос, обсуждая опцию CLI, но я все равно буду открыт для других методов, если кто-нибудь ничего не знает.
См. Webkit2png для программы командной строки OSX, которая делает это.
На странице также упоминаются альтернативы Linux.
[edit]: wkhtml2image – самый новый парень в городе, и он работает лучше, чем что-либо еще, что я когда-либо использовал.
[edit2]: По состоянию на 2014 год, PhantomJS, кажется, путь, так как у него есть новейшая версия веб-каскада альтернатив, о которых я знаю.
html2ps делает достойную работу для относительно простых страниц, и она требует очень мало с точки зрения внешних двоичных файлов, что означает, что ее очень легко установить / использовать. Если вы контролируете страницы, которые вы будете захватывать, вы можете убедиться, что они будут соответствующим образом отображены в html2ps. Однако, если вы надеетесь захватить произвольные URL-адреса, я не уверен, что порт PHP для HTML2PS соответствует задаче. Это также не самая быстрая вещь в мире (ожидание визуализации в секундах для сложных страниц), но это не имеет особого значения для некоторых приложений.
Не уверен, что этого будет достаточно для вас, потому что у него есть некоторые дополнительные вещи, но стоит попробовать: http://www.snap.com
Вы можете использовать функции GD imagegrabscreen()
или imagegrabwindow()
чтобы сделать снимок экрана, но они доступны только в Windows на данный момент.
Возможно получить кодированное изображение с базой 64 сайта с помощью api. Вы можете указать рабочий стол или мобильный вид, но вы ограничены изображением определенного размера.