2011-03-28 68 views

回答

7

有各種可用的命令行實用程序。大多數開始browser engines in headless X11之一,然後截圖。一個特別常見的是khtml2png可以從PHP中使用這樣的(不知道是否有是爲CentOS預編譯的版本):

exec("khtml2png --width 800 --height 600 http://google.com/ img.png"); 

再過這裏列出:Command line program to create website screenshots (on Linux)

+0

我無法通過php運行這個命令。它必須通過終端運行。我想通過PHP自動創建縮略圖。 exec在PHP上啓用,但它只是這個特定的命令。我有一個專用的服務器,所以我可以安裝應用程序,所以你可以向我建議這些。但是應用程序應該能夠通過PHP運行。 – Vish 2011-03-29 16:38:49

+0

您是否收到特定的錯誤訊息? (使用'2>/dev/stdout'來捕獲它)。如果你不能從exec()啓動這個命令,那麼其他選項(firefox和捕捉X11根窗口)將不會更好。 - 另一個通常推薦的替代方法是'wkhtml2pdf' http://code.google.com/p/wkhtmltopdf/(然後需要第二步將其再次轉換爲PNG圖像..) – mario 2011-03-29 16:50:59

+0

如果您不介意你能否請我給我安裝wkhtml2pdf和它的PHP對應的步驟。謝謝... :) – Vish 2011-03-29 16:52:59

0

我不認爲這是可能的,因爲就像一個瀏覽器PHP不會呈現網站。

編輯: 但是,您可以使用PHP cURL腳本保存每個頁面的原始未呈現的HTML。

如:

$websites[] = 'http://google.com'; 
$websites[] = 'http://stackoverflow.com'; 
$websites[] = 'http://msn.com'; 
$websites[] = 'http://microsoft.com'; 

foreach ($websites as $site) 
{ 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $site); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $data = curl_exec($curl); 
    curl_close($curl); 

    if(!empty($data)) 
    { 
     savePageToFile($data); //placeholder, not real function 
    } 
} 
+1

雖然這個信息是準確的,它與拍攝呈現網頁的屏幕截圖沒有多大關係。 – Klinky 2011-03-28 23:57:20