2012-01-28 78 views
1

可能重複:
Website screenshots using PHP獲取頁面的截圖

我有一個應用程序,人們觀看的內容(視頻流)流,需要點擊每一個按鈕時間發生了一些事情(假設他們看到一盞紅燈)。

我想以某種方式在用戶點擊按鈕時截圖流。 問題是,流不是我的,我正在使用IFrame到另一個頁面的流。該流是一個Flash對象。

我需要在使用PHP/Javascript的Flash內容點擊時截圖頁面並將其保存在服務器上。

我看到了類似於我需要的東西,但解決方案是使用C#和.NET。 Programmatically get a screenshot of a page

編輯: 想法,如果任何人都可以在這裏解釋它最好的,我怎麼可能用一個插件/ Java小程序或進入該網站時,用戶可能安裝的東西。 (越容易越好)。

+0

這不是重複的。他正在嘗試截取客戶端的截圖。 – Brad 2012-01-29 17:45:20

+0

http://stackoverflow.com/a/757778/2432317 – 2013-07-28 03:35:23

回答

2

你無法獲得客戶端的屏幕截圖,當然也不能使用PHP。 PHP在你的服務器上運行,而不是在客戶端上運行。

做到這一點的唯一方法是編寫某種瀏覽器插件,或使用Java。

看到這個職位:Take Screenshot of Browser via JavaScript (or something else)

+0

是的,但也許有一種方法來使用我的服務器訪問頁面並截圖。 – Vadiklk 2012-01-28 20:46:12

+0

@Vadiklk,你打算怎麼做?當然,你的服務器可以呈現頁面,但它們可能看起來完全不同於客戶看到的,當然也不是特定的時間。 – Brad 2012-01-28 20:46:59

+0

當用戶單擊按鈕時,時間是特定的。點擊我發送一個請求到服務器使用AJAX,然後我想保存屏幕截圖。 – Vadiklk 2012-01-28 20:48:30

0

來查看您的網站的請求已被瀏覽器發出後,你的PHP代碼運行並生成網頁的內容。當用戶看到頁面時,PHP已經完成運行,並且頁面的內容是靜態的(儘管當然可以通過其他方式(如ajax或javascript)進行更改)。這就是爲什麼這對PHP來說根本不可能,並且出於安全原因(例如,它可以揭示用戶正在運行的任何客戶端腳本等),這是不可能的。

截圖可以採取的唯一方法就是自己渲染它。我能想到的唯一方法就是花時間加載頁面,然後按下按鈕並呈現頁面這麼長時間,但這絕非萬無一失,並非真正有效的建議。

恐怕您可能不得不重新設計您網站的這一部分。

+0

我編輯了這個問題。 – Vadiklk 2012-01-28 21:01:39

+0

好吧,將你的網站嵌入到Java applet中並添加一個jbutton。當按鈕被按下時,拍攝截圖並將其通過電子郵件發送給自己。 – Swadq 2012-01-28 21:13:19

0

既然你說流是一個Flash對象,你可以簡單地將它讀入Flash環境。 Flash可以讓你做你想做的事 - 保存屏幕截圖,或者更好的說,是由該Flash生成的圖像,即靜幀。但是,我不確定Flash是否允許您製作包含操作系統環境的屏幕截圖。