GNU/Linux >> Linux の 問題 >  >> Linux

PHPスクリプトとLinuxコマンドラインを使用してWebサイト(html)のスクリーンショットを作成する方法

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

Linux
  1. Linuxコマンドのスクリプトを作成する方法

  2. Linuxスクリプトコマンドを使用してターミナルセッションをキャプチャして出力する方法

  3. シバンを追加する方法 #! Linuxでphpスクリプトを使用しますか?

  1. xclipを使用してLinuxコマンドラインでコピーして貼り付けます

  2. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

  3. Linux でコマンドラインを使用して起動可能な ISO から起動可能な USB を作成する方法は?

  1. Linuxでエイリアスを作成してエイリアスコマンドを使用する方法

  2. LinuxでKsnipを使用してスクリーンショットを撮り、注釈を付ける方法

  3. 単一のコマンド ライン Java (Linux) でコンパイルおよびビルド