2011-01-30 12 views

答えて

3

は、PHPはそれ自身でこれを行うことができないか確認する必要があります。

スクリーンショットをキャプチャし、その方法でPHPを使用して通信する外部の方法があります。

まず、スクリーンショットを撮るためのシステムが必要です。 IECapt(http://iecapt.sourceforge.net/)、CutyCapt(http://cutycapt.sourceforge.net/)、khtml2png(http://khtml2png.sourceforge.net/)を見て、それらのいずれかをシステム。

次に、スクリーンショット取得アプリケーションをexec()してブラウザにデータを返すPHPスクリプトを設定します。

<?php 
$in_url = 'http://' . $_REQUEST['url']; // !!INSECURE!! In production, make sure to sanitize this input! 
$filename = '/var/cutycapt/images/' . $_REQUEST['url'] . '.png'; // Will probably need to normalize filename too, this is just an illustration 

// First check the file does not exist, if it does exist skip generation and reuse the file 
// This is a super simple caching system that will help to reduce the resource requirements 
if(!file_exists($filename)) { 
    exec('/usr/local/bin/CutyCapt --url="' . $_REQUEST['url'] . '" --out="' . $filename . '"'); 
} 

// Second check if the file exists, either from a previous run or from the above generation routine 
if(file_exists($filename)) { 
    header('Content-type: image/png'); 
    print file_get_contents($filename); 
} else { 
    header('Status: 500 Internal Server Error'); 
} 
?> 

あなたは、次のようにスクリプトを呼び出すことができます:たとえば

スクリーンショットを構築

http://localhost/screenshot.php?url=www.google.com 

はCPUに負荷をかけになるだろうので、私は強く、いくつかの建物をお勧めしますファイルキャッシュの種類(つまり、出力の結果を保存して、どこかにスクリーンショットがあるかどうかを確認する)、おそらくはキューイングシステムであっても、スクリーンショットサーバが圧倒されることはありません。

0

私は恐らくphpがこのようなタスクを単独で処理することはできません。サーバーにいくつかの外部ライブラリーをインストールする必要があります。

可能な関連answer

0

ティムは、あなたが共有ホスト上でそのような何かを行うことができない、おそらく正しいです。

私が行った実装は、専用のLinuxサーバ上で使用され、Xvfb、firefoxとimportコマンドが含まれていました。

また、それがHTMLレンダリングライブラリが含まれていないようthis question

1

回答は、使用しているプラ​​ットフォームによって異なります。とにかくここにいるquestion asked before.

コマンドラインベースのスクリーンショットを作成したい場合、ほとんどのaproachesはXvfbに何らかの形で関わっているか、またはたくさんの依存関係/ライブラリをインストールしています。

のlinux:

khtml2png.sourceforge.net

mysql-apache-php.com/website_screenshot.htm

cutycapt.sourceforge.net

www.unruhdesigns。COM /ニュース/ 2010/10 /使用-のfirefox・オン・ヘッドレス・サーバー・ツー・メークのスクリーンショット・オブ・ウェブサイト

窓:

iecapt.sourceforge.net

MAC:

www.paulhammond.org/webkit2png/

EDIT:それはもちろんのRackspaceのようなものでかのう以上だし、コンパイルすることができます任意の共有のホスト上とwebfactionのような独自のコードをインストールしてください。

歓迎