PHP: How to capture browser window screen with php?
首先,我不确定,如果可以用 php 捕获浏览器窗口屏幕,那么
怎么办?
如果可能,最好只捕获网站内容,不包括菜单栏、工具栏、状态栏等浏览器部分。
谢谢
有
对于那些说 PHP 不了解浏览器的人来说,我建议看看 PHP 手册中的
这完全可以做到,只需要比 PHP 多一点的时间就可以做到。我有一个用 PHP 编写的应用程序,它以一定的时间间隔拍摄网站的快照。开始有点棘手,但这是我在 Linux 机器上采取的步骤:
- 安装 Xvfb(或 vnc-server)以在内存中模拟 X Windows 会话。在显示屏上启动 Xvfb :1
- 安装火狐
- 安装 imagemagick
- 创建一个 bash 脚本以在所需的 URL 上运行 Firefox。我的看起来像这样:
.
1 2 3 4 5 6 7 8 |
- 从 PHP 执行脚本:
.
1 |
对我来说最棘手的部分是在屏幕截图发生时让浏览器全屏显示。因为你不能直接访问浏览器,你必须通过火狐的配置文件来配置所有东西,这可能需要一些时间才能弄清楚。
帮助您入门的有用链接:
http://semicomplete.com/blog/geekery/xvfb-firefox.html
http://www.webmasterworld.com/forum21/9182.htm
PHP 对浏览器一无所知。事实上,通常PHP在浏览器接收到数据之前就已经运行完毕。
如果可能的话,它必须是一个客户端系统,例如 Javascript。这可以遍历 DOM,从而捕获浏览器认为它正在显示的模型;但我不记得看到任何工具来捕获实际图形。
无论如何,尚不清楚您可以用这些信息做什么。浏览器不允许 Javascript 访问本地文件。我想您原则上可以通过 Ajax 调用将其发送回服务器。
从根本上不受 Internet 架构的支持,这是有充分理由的。您连接到的服务器不应该有任何关于您的信息,而不是处理和响应您的请求所需的信息。服务器肯定不能捕获有关您在屏幕上查看的内容的信息。
也就是说,您可能可以安装一些涉及客户端技术的东西,例如 ActiveX、Flash 或 Java,它们会捕获屏幕,然后在 AJAX 请求中将其发送回服务器,但您可能不应该这样做。我无法想象你会对这样的事情有什么样的用途,除了调试布局问题。
您不能从 PHP(服务器端)执行此操作。
但是您可以使用众多 HTML 到 PDF 转换器之一来捕获图像(并且有很多工具可以将 PDF 转换为其他内容)。