2017年12月19日
Home > テクノロジー > PHP で Web サイトのスクリーンショットを取得する
PHP で Web サイトのスクリーンショットを取得する
By: HARRY NGUYEN

PHP で Web サイトのスクリーンショットを取得する


ここでは、 Snappy を使って Web サイトのスクリーンショットを取得する PHP スクリプトを作成する方法について説明します。 Snappy は、「Web サイトのスクリーンショットをコマンドラインから撮影する」で紹介した wkhtmltoimage を PHP から利用するためのライブラリです。詳しくは下記の Web サイトを参照してください。

KnpLabs/snappy · GitHub

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 のスクリーンショット

Google のスクリーンショット

山田 祥寛(翔泳社)
¥ 6,277
-(-)
-

5 コメント

  1. 普通にcomposerでインストールしないのは何か意図があるんでしょうか?

コメントをどうぞ

メールアドレスが公開されることはありません。* が付いている欄は必須項目です。 *

*