Wkhtmltoimage WebサイトまたはWebページのスクリーンショットを作成するための非常に便利なアプリケーションです。 Webページのスクリーンショットを作成して、システムに保存する必要がある場合がありました。 QT Webkitレンダリングエンジンを使用して、さまざまな形式の画像を作成します。この記事は、phpスクリプトとLinuxコマンドラインを使用してWebページのスクリーンショットをキャプチャするのに役立ちます。
ステップ1:Linuxにwkhtmltoimageをインストールする
Googleコードからwkhtmltoimageをダウンロードし、次の手順を使用してLinuxシステムにインストールします。
# cd /opt # wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-linux-i386_0.12.0-03c001d.tar.xz # tar xJf wkhtmltox-linux-i386_0.12.0-03c001d.tar.xz # ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage # chown apache:apache /usr/bin/wkhtmltoimage # chmod +x /usr/bin/wkhtmltoimage
ステップ2:コマンドラインを使用してイメージを作成する
まず、Linuxコマンドラインを使用してwkhtmltoimageスクリプトを確認します。次のコマンドは、 http://google.comのスクリーンショットを撮ります google.jpgという名前で作成して画像化します。
# /usr/bin/wkhtmltoimage --no-images --load-error-handling ignore http://google.com google.jpg
ステップ3:画像を作成するためのPHPコード
次のphpコードを使用して、html(WebサイトのURL)から画像を生成します。このスクリプトは、Apacheのshell_exec関数を有効にする必要がありました。ほとんどの共有ホスティングプロバイダーは、この機能を許可していません。
ファイル名を作成しますgetImage.php 以下のコードを入力してください:
PHP
123456789 | <?php $ url =$ _GET ['url']; //画像を作成するウェブサイトのURL$name =$ _GET ['img']; //出力画像名$command=" / usr / bin / wkhtmltoimage --no-images --load-error-handling ignore"; $ dir_img =" / var / www / html / images /"; //画像ファイルはここに保存されます$ex_cmd=" $ command $ url" 。 $dir_img。 $ name; $ output =shell_exec($ ex_cmd);?> |
次のシンテックスまたはデモURLを使用して、Webサイトの画像(html)を生成します。
構文:
http://youdomain.com/getImage.php?url=<website url>&img=<image name>
例:
https://tecadmin.net/getImage.php?url=http://google.com&img=image1.jpg
ステップ4:SEO対応URL用のPHPスクリプト
この設定でSEO対応のURLを作成する場合は、以下の手順を使用できます。
Webサーバーのドキュメントルートに必要なディレクトリをいくつか作成します
# mkdir -p /var/www/html/getImage/ # mkdir -p /var/www/html/getImage/images/
index.phpを作成します 次の内容のファイル。すべてのディレクトリパスが正しいことを確認してください
PHP
123456789101112131415 | &lt;?php $ url =str_replace('index.php'、''、$ _SERVER ['PHP_SELF']); $ url =str_replace($ url、''、$ _ SERVER [' REQUEST_URI']); $ url =explode(' /'、$ url); $ name =array_shift($ url); $ weburl =array_shift($ url); $ command =&quot; / usr / bin / wkhtmltoimage --no-images --load-error-handling ignore&quot;; $ dir_img =&quot; / var / www / html / getImage / images /&quot;; //画像ファイルはここに保存されます$ex_cmd=&quot; $ command $ weburl&quot; 。 $dir_img。 $ name; $ output =shell_exec($ ex_cmd); echo&quot;&lt; img src =&quot; / getImage / images / $ name&quot; &gt;&quot;; //これにコメントを付けて、ページに画像を表示しないようにしますか?&gt; |
次に、 .htaccessを作成します このディレクトリ内のファイルを使用して、すべてのリクエストをindex.phpファイルに移動します。サーバーで.htaccessファイルを使用できるようになっていることを確認してください。
# vi /var/www/html/getImage/.htaccess RewriteEngine On RewriteCond %{REQUEST_URI} /images/.+(gif|png|jpg)$ RewriteRule .* - [L] RewriteRule ^.*$ index.php
これで、以下のようなURLにアクセスして画像を作成できます
構文:
http://youdomain.com/getImage/[imagename]/[site url without http prefix]
例:
https://tecadmin.net/getImage/123.jpg/yahoo.com