【问题标题】:Get a screenshot of a page [duplicate]获取页面的屏幕截图[重复]
【发布时间】:2012-02-21 08:03:26
【问题描述】:

可能重复:
Website screenshots using PHP

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

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

我需要使用 PHP/Javascript 将点击时的页面截图与 flash 内容一起保存在服务器上。

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

编辑: 想法,如果有人可以在这里最好地解释它,我怎么能使用插件/java小程序或用户在进入站点时可能安装的东西来做到这一点。 (越简单越好)。

【问题讨论】:

标签: php


【解决方案1】:

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

这样做的唯一方法是编写某种浏览器插件,或使用 Java。

看到这个帖子:Take Screenshot of Browser via JavaScript (or something else)

【讨论】:

  • 是的,但也许有一种方法可以使用我的服务器访问页面并截图。
  • @Vadiklk,你打算怎么做?当然,您的服务器可以呈现页面,但它们看起来可能与客户端看到的完全不同,而且肯定不是在任何特定时间。
  • 时间是特定的,当用户点击按钮时。单击时,我使用 AJAX 向服务器发送请求,然后我想保存屏幕截图。
  • 对。您打算如何从客户端获取屏幕截图?
  • 我不想保存来自客户端的截图,我只想点击使用AJAX向服务器表明他现在需要访问页面并保存截图。
【解决方案2】:

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

这就是为什么 PHP 根本无法做到这一点,并且出于安全原因(例如,它可能会显示用户正在运行的任何客户端脚本等)。

截取屏幕截图的唯一方法是自己渲染。我能想到的唯一方法是获取页面加载时间,然后是按下按钮的时间,并将页面呈现这么长时间,但这绝不是万无一失的,也不是一个真正有效的建议.

恐怕您可能不得不重新设计网站的这一部分。

【讨论】:

  • 好吧,将您的网站嵌入到 java 小程序中并添加一个 jbutton。按下按钮后,截取屏幕截图并通过电子邮件发送给自己。
【解决方案3】:

既然您说流是 Flash 对象,您可以简单地将其读入 Flash 环境。 Flash 可以让你做你想做的事——保存屏幕截图,或者更好地说,保存由 Flash 生成的图像,即静止帧。但是,我不确定 Flash 是否允许您制作屏幕截图,包括操作系统环境。

【讨论】:

    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多