Прежде всего, я не уверен, если можно захватить экран окна браузера с помощью php, то как это сделать?
Если это возможно, лучше всего будет захватывать только содержимое веб-сайта, за исключением частей браузера, таких как меню, панель инструментов, панель состояния и т. Д.
благодаря
Существует imagegrabscreen()
и imagegrabwindow()
, что позволит вам программно создавать скриншоты из браузера, работающего на одном компьютере через COM (только Win). См. Комментарии в руководстве о том, как опустить хром браузера. С включенным DCOM это также будет работать с удаленными машинами Windows, которые были настроены для доступа через DCOM.
В обозревателе для тех, кто сказал, что PHP не знает о браузере, я бы предложил посмотреть на get_browser()
в руководстве по PHP. Это не так много, но эй, это не совсем так.
Это может быть абсолютно сделано, это просто требует немного больше, чем PHP, чтобы это произошло. У меня есть приложение, написанное на PHP, которое делает снимки веб-сайтов через определенные промежутки времени. Это немного сложно сделать, но вот шаги, которые я сделал на машине Linux:
,
#!/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
,
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-кода в другое).