获取页面的屏幕截图

时间:2012-01-28 20:42:03

标签: php

  

可能重复:
  Website screenshots using PHP

我有一个人们观看内容流(视频流)的应用程序,每次发生某事时都需要点击一个按钮(假设他们看到红灯)。

我想以某种方式在用户点击按钮时截取流。 问题是流不是我的,我正在使用IFrame到另一个页面。流是一个flash对象。

我需要使用PHP / Javascript在点击flash内容时截取页面并将其保存在服务器上。

我看到了类似于我需要的东西,但解决方案是使用C#和.NET。 Programmatically get a screenshot of a page

编辑: 想法,如果有人能在这里解释得最好,我怎么能使用插件/ java小程序或用户在进入网站时可能安装的东西。 (越容易越好)。

3 个答案:

答案 0 :(得分:2)

你无法获得客户端的屏幕截图,当然也不能使用PHP。 PHP在您的服务器上运行,而不是在客户端上运行。

执行此操作的唯一方法是编写某种浏览器插件,或使用Java。

请参阅此帖子:Take Screenshot of Browser via JavaScript (or something else)

答案 1 :(得分:0)

在浏览器查看您的网站请求后,您的PHP代码将运行并生成页面内容。当用户看到页面时,PHP已经完成运行,并且页面内容是静态的(尽管当然可以通过其他方式更改,例如ajax或javascript)。

这就是为什么用PHP完全不可能的原因,出于安全原因,它不可能通过其他方式实现(例如,它可以显示用户正在运行的任何客户端脚本等)。

截屏的唯一方法就是自己渲染。我能想到的唯一方法就是花时间加载页面,然后按下按钮的时间,然后渲染页面这么久,但这绝不是万无一失的,也不是真正有效的建议

我担心您可能不得不重新设计网站的这一部分。

答案 2 :(得分:0)

由于您说流是Flash对象,因此您只需将其读入Flash环境即可。 Flash可以让你做你想做的事 - 保存截图,或者更好地说,由Flash生成的图像,即静止帧。但是,我不确定Flash是否允许您制作包含操作系统环境的显示屏截图。