Wkhtmltoimage est une application très utile pour créer une capture d'écran d'un site Web ou d'une page Web. Parfois, nous devions créer une capture d'écran des pages Web et les stocker sur notre système. Il utilise le moteur de rendu QT Webkit pour créer des images dans différents formats. Cet article vous aidera à capturer des captures d'écran d'une page Web à l'aide d'un script PHP et d'une ligne de commande Linux.
Étape 1 :Installez wkhtmltoimage sous Linux
Téléchargez wkhtmltoimage à partir du code Google et installez-le sur votre système Linux en suivant les étapes suivantes.
# 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
Étape 2 :Créer une image à l'aide de la ligne de commande
Vérifiez d'abord le script wkhtmltoimage à l'aide de la ligne de commande Linux. La commande suivante prendra une capture d'écran de http://google.com et créez une image avec le nom google.jpg.
# /usr/bin/wkhtmltoimage --no-images --load-error-handling ignore http://google.com google.jpg
Étape 3 :Code PHP pour créer une image
Utilisez le code php suivant pour générer une image à partir de html (URL du site Web). Ce script nécessitait l'activation de la fonction shell_exec pour Apache. La plupart des fournisseurs d'hébergement mutualisé n'autorisent pas cette fonction.
Créez un nom de fichier getImage.php et mettre le code ci-dessous :
PHP
123456789 | <?php $url =$_GET['url']; // URL du site Web pour créer l'image$name =$_GET['img'] ; // Nom de l'image de sortie $command ="/usr/bin/wkhtmltoimage --no-images --load-error-handling ignore";$dir_img ="/var/www/html/images/"; // Les fichiers image seront enregistrés ici$ex_cmd ="$command $url " . $dir_img . $name;$output =shell_exec($ex_cmd);?> |
Utilisez le syntex suivant ou l'URL de démonstration pour générer l'image du site Web ( html ).
Syntaxe :
http://votredomaine.com/getImage.php?url=&img=
Exemple :
https://tecadmin.net/getImage.php?url=http://google.com&img=image1.jpg
Étape 4 :Script PHP pour une URL optimisée pour le référencement
Si vous souhaitez créer une URL conviviale pour le référencement pour cette configuration, vous pouvez suivre les étapes ci-dessous.
Créez quelques répertoires requis dans la racine du document de votre serveur Web
# mkdir -p /var/www/html/getImage/# mkdir -p /var/www/html/getImage/images/
Créer index.php fichier avec le contenu suivant. Assurez-vous que tous les chemins de répertoire sont corrects,
PHP
123456789101112131415 | <?php $url =str_replace('index.php','', $_SERVER['PHP_SELF']);$url =str_replace($url,'',$_SERVER[' REQUEST_URI']);$url =éclater('/',$url);$name =array_shift($url);$weburl =array_shift($url); $command ="/usr/bin/wkhtmltoimage --no-images --load-error-handling ignore";$dir_img ="/var/www/html/getImage/images/"; // Les fichiers image seront enregistrés ici$ex_cmd ="$command $weburl " . $dir_img . $name;$output =shell_exec($ex_cmd);echo "<img src="/getImage/images/$name" >" ; // commentez ceci pour désactiver l'affichage de l'image sur la page ?> |
Créez maintenant un .htaccess fichier dans ce répertoire pour déplacer toutes les requêtes vers le fichier index.php. assurez-vous que votre serveur est activé pour utiliser le fichier .htaccess.
# vi /var/www/html/getImage/.htaccessRewriteEngine OnRewriteCond %{REQUEST_URI} /images/.+(gif|png|jpg)$RewriteRule .* - [L]RewriteRule ^.*$ index.phpVous pouvez maintenant créer des images en accédant aux URL comme ci-dessous
Syntaxe :
http://votredomaine.com/getImage/[nomimage]/[URL du site sans préfixe http]Exemple :
https://tecadmin.net/getImage/123.jpg/yahoo.com