2011-04-13 16 views

回答

2

有沒有辦法做到這一點,至少不是純粹的PHP。

可能在某些時候將當前文檔的屏幕截圖轉換爲<canvas>元素,並將該元素髮送到服務器。但就目前而言,據我所知,在任何瀏覽器中都沒有API。

編輯:似乎有一種使用Flash的方法,雖然我不確定使用的技術here是否可用作開源。請參見Can you take a "screenshot" of the page using Canvas?

1

不可以。如果不安裝任何額外的插件,就不能截取用戶的瀏覽器,即使如此,PHP也無濟於事。

0

以下方法不會拍攝快照(如其他人所述,這是不可能的),但這是捕獲用戶單擊快照按鈕時窗體狀態的一種「方法」。這不是生產代碼,這只是解決它的一種可能的方式。我再次強調,這不是一個真正的快照,但會達到模擬目的。

您可以讓jQuery通過POST將完成的HTML表單和字段發送到解釋HTML並渲染/保存它的PHP腳本。

// Some javascript file 
$('#save_button').click(function(e) { 
$.ajax({ 
    type: "POST", 
    url: "save_form.php", 
    data: "data=" + $('#form_id').html(), 
    success: function(msg){ 
    alert("saved: " + msg); 
    } 
}); 
}); 

然後在PHP文件save_form.php(您想爲ID的快照不知何故,無論是從Ajax請求自動遞增的值,或發送ID(時間戳,IP等)

<?php 
// connect to db 
// bla bla bla - you would obviously clean the POST data before insertion 

$result = mysql_query("INSERT INTO snapshots (html_source) VALUES ({$_POST['data']})"); 

// test result etc 
// no you have the html stored, which you can view below 

?> 

最後都具有渲染,說snapshot_render.php

<?php 
// you would make a request based on an id 
$result = mysql_query("SELECT html_source FROM snapshots LIMIT 1"); 

$row = mysql_fetch_array($result); 
echo $row['html_source']; 

?> 
相關問題