ここでは、 Snappy を使って Web サイトのスクリーンショットを取得する PHP スクリプトを作成する方法について説明します。 Snappy は、「Web サイトのスクリーンショットをコマンドラインから撮影する」で紹介した wkhtmltoimage を PHP から利用するためのライブラリです。詳しくは下記の Web サイトを参照してください。
Snappy のダウンロードと設置
Snappy をダウンロードし、 /usr/local へ設置します。
[user@localhost ~]$ wget https://github.com/KnpLabs/snappy/archive/0.1.2.tar.gz -O snappy-0.1.2.tar.gz
[user@localhost ~]$ cd /usr/local
[user@localhost ~]$ tar xzf /home/user/snappy-0.1.2.tar.gz
PHP スクリプトの作成
下記のプログラムを /var/www/html/thumbnail.php として用意します。 9行目は wkhtmltoimage の実行ファイルを指定します。
<?php require_once '/usr/local/snappy-0.1.2/src/autoload.php'; use Knp\Snappy\Image; if (isset($_GET['url']) && $_GET['url'] !== '') : $url = $_GET['url']; else : die('Incorrect data entered.'); endif; $snappy = new Image('/usr/local/bin/wkhtmltoimage-amd64'); header("Content-Type: image/jpeg"); echo $snappy->getOutput($url); ?>
ブラウザからアクセスしてスクリーンショットを表示する
前項で用意した thumbnail.php は url という引数に指定した URL のスクリーンショットを取得するようになっているので、例えば Google のスクリーンショットを取得するには、ブラウザで http://localhost/thumbnail.php?url=http://www.google.co.jp/ へアクセスしてみましょう。下記のように表示されるはずです。
Google のスクリーンショット