PHP: Как захватить экран окна браузера с помощью php?

Прежде всего, я не уверен, если можно захватить экран окна браузера с помощью php, то как это сделать?

Если это возможно, лучше всего будет захватывать только содержимое веб-сайта, за исключением частей браузера, таких как меню, панель инструментов, панель состояния и т. Д.

благодаря

Существует imagegrabscreen() и imagegrabwindow() , что позволит вам программно создавать скриншоты из браузера, работающего на одном компьютере через COM (только Win). См. Комментарии в руководстве о том, как опустить хром браузера. С включенным DCOM это также будет работать с удаленными машинами Windows, которые были настроены для доступа через DCOM.

В обозревателе для тех, кто сказал, что PHP не знает о браузере, я бы предложил посмотреть на get_browser() в руководстве по PHP. Это не так много, но эй, это не совсем так.

Это может быть абсолютно сделано, это просто требует немного больше, чем PHP, чтобы это произошло. У меня есть приложение, написанное на PHP, которое делает снимки веб-сайтов через определенные промежутки времени. Это немного сложно сделать, но вот шаги, которые я сделал на машине Linux:

  • Установите Xvfb (или vnc-server) для эмуляции сеанса X Windows в памяти. Запустить Xvfb на дисплее: 1
  • Установка Firefox
  • Установить imagemagick
  • Создайте сценарий bash для запуска Firefox по желаемому URL. Мой выглядел так:

,

 #!/bin/bash DISPLAY=:1 firefox & sleep 2s DISPLAY=:1 firefox -kill-all & sleep 1s DISPLAY=:1 firefox -url $1 & sleep 5s DISPLAY=:1 import -window root /var/www/images/screenshots/$2.png 
  • Выполните скрипт с PHP:

,

 exec ('sh ../scripts/screencap.sh ' . $url . ' ' . $file_name); 

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

Полезные ссылки, которые помогут вам начать работу:

http://semicomplete.com/blog/geekery/xvfb-firefox.html http://www.webmasterworld.com/forum21/9182.htm

PHP ничего не знает о браузере. Фактически, обычно PHP заканчивается, пока браузер не получит данные.

Если это вообще возможно, это должна быть клиентская система, такая как Javascript. Это может пересечь DOM и таким образом захватить модель, которую браузер считает, что она отображается; но я не помню, чтобы увидеть какой-либо инструмент для захвата реальной графики. В любом случае неясно, что вы могли бы сделать с такой информацией. Браузеры не позволяют Javascript обращаться к локальным файлам. Полагаю, вы могли бы в принципе отправить его обратно на сервер по вызову Ajax.

По сути, неподдерживается архитектурой Интернета и не без оснований. Сервер, к которому вы подключаетесь, не должен иметь больше информации о вас, чем необходимо для обработки и ответа на ваш запрос. Сервер НЕ МОЖЕТ БЫТЬ в состоянии захватить информацию о том, что вы просматриваете на экране.

Тем не менее, вы можете, вероятно, создать что-то с использованием технологий на стороне клиента, таких как ActiveX или Flash или Java, которые будут захватывать экран, а затем отправлять его обратно на сервер в запросе AJAX, но вы, вероятно, не должны этого делать. Я не могу себе представить, какое использование у вас было бы для такой вещи, кроме того, возможно, отладка макетов.

Вы не можете сделать это с PHP (на стороне сервера).

Но вы можете выложить и использовать один из многих конвертеров HTML в PDF для захвата изображения (и есть много инструментов для преобразования PDF-кода в другое).