PHP:如何用 php 捕获浏览器窗口屏幕? | 珊瑚贝

PHP: How to capture browser window screen with php?


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

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

谢谢

  • stackoverflow.com/questions/713938/…
  • 我专门针对 php,但您分享了一些很酷的东西,谢谢 :)


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

对于那些说 PHP 不了解浏览器的人来说,我建议看看 PHP 手册中的 get_browser()。不是很多,但是,嘿,这不是什么。


这完全可以做到,只需要比 PHP 多一点的时间就可以做到。我有一个用 PHP 编写的应用程序,它以一定的时间间隔拍摄网站的快照。开始有点棘手,但这是我在 Linux 机器上采取的步骤:

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

.

1
2
3
4
5
6
7
8
#!/bin/bash
DISPLAY=:1 firefox &
sleep 2s
DISPLAY=:1 firefox killall &
sleep 1s
DISPLAY=:1 firefox url $1 &
sleep 5s
DISPLAY=:1 import window root /var/www/images/screenshots/$2.png
  • 从 PHP 执行脚本:

.

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

对我来说最棘手的部分是在屏幕截图发生时让浏览器全屏显示。因为你不能直接访问浏览器,你必须通过火狐的配置文件来配置所有东西,这可能需要一些时间才能弄清楚。

帮助您入门的有用链接:

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 转换为其他内容)。


来源:https://www.codenong.com/1952570/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_10112.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?