Скриншоты веб-страницы с PHP?

Я знаю, что нет прямого способа сделать снимок экрана веб-страницы с помощью PHP. Какой самый простой способ сделать это? Существуют ли какие-либо инструменты командной строки, которые могли бы сделать это, что я мог бы выполнить из сценария PHP (я думаю, что-то, что будет работать в ОС NIX (OS X и / или Linux в частности)?

Изменить: Или, может быть, какой-то веб-сервис, к которому я мог бы получить доступ через SOAP или REST или...

Edit # 2: я нашел связанный вопрос, обсуждающий параметр CLI, но я все еще был бы открыт для других методов, если кто-нибудь знает что-нибудь.

6 ответов

Решение

Смотрите webkit2png для программы командной строки OSX, которая делает это.

На странице также упоминаются альтернативы Linux.

[править]: wkhtml2image - самый новый ребенок в городе, и он работает лучше, чем все, что я когда-либо использовал.

[edit2]: Начиная с 2014 года, PhantomJS, похоже, является наиболее подходящим вариантом, поскольку у него есть новейшая версия веб-набора альтернатив, о которых я знаю.

Вы можете использовать функции GD imagegrabscreen() или же imagegrabwindow() сделать снимок экрана, но на данный момент они доступны только в Windows.

html2ps неплохо справляется с относительно простыми страницами и требует очень мало в плане внешних двоичных файлов, что означает, что его очень легко установить / использовать. Если вы контролируете страницы, которые будете захватывать, тогда вы сможете убедиться, что они будут правильно отображаться в html2ps. Однако, если вы надеетесь захватить произвольные URL-адреса, я не уверен, что PHP-порт HTML2PS подходит для этой задачи. Это также не самая быстрая вещь в мире (ожидайте время рендеринга в секундах для сложных страниц), но это не имеет значения для некоторых приложений.

Можно получить изображение сайта в кодировке base64, используя API скорости страниц в Google. Вы можете указать настольный или мобильный просмотр, но вы ограничены изображением определенного размера.

Не уверен, что этого будет достаточно для вас, потому что там есть кое-что добавленное, но стоит попробовать: http://www.snap.com/

Другие вопросы по тегам