PHP:如何使用php捕获浏览器窗口屏幕?

Sar*_*raz 7 php browser screenshot

首先,我不确定,如果有可能用php捕获浏览器窗口屏幕,那该怎么办呢?

如果可能,最好只捕获网站内容,不包括浏览器部分,如菜单栏,工具栏,状态栏等.

谢谢

Gor*_*don 10

imagegrabscreen()imagegrabwindow(),这将允许您以编程方式从通过COM在同一台机器上运行的浏览器创建屏幕截图(仅限Win).有关如何省略浏览器的镶边,请参阅手册中的注释.随着DCOM启用,这也将与已设置为允许通过DCOM访问远程Windows计算机上工作.

对于那些说PHP不了解浏览器的人的旁注,我建议get_browser()在PHP手册中查看.它并不多,但是嘿,这不是什么都没有.


And*_*ird 7

这绝对可以完成,它需要比PHP更多一点来实现它.我有一个用PHP编写的应用程序,它以一定的时间间隔拍摄网站的快照.开始时有点棘手,但这是我在Linux机器上采取的步骤:

  • 安装Xvfb(或vnc-server)以模拟内存中的X Windows会话.在显示屏上启动Xvfb:1
  • 安装Firefox
  • 安装imagemagick
  • 创建一个bash脚本以在所需的URL上运行Firefox.我看起来像这样:

.

#!/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
Run Code Online (Sandbox Code Playgroud)
  • 从PHP执行脚本:

.

exec ('sh ../scripts/screencap.sh ' . $url . ' ' . $file_name);
Run Code Online (Sandbox Code Playgroud)

对我来说最棘手的部分是在屏幕截图发生时让浏览器全屏显示.因为您无法直接访问浏览器,所以您必须通过Firefox的配置文件配置所有内容,这可能需要一些时间来确定.

有用的链接可帮助您入门:

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