Wkhtmltoimage是一个非常有用的应用程序,创建一个网站或网页的截图。有些时候,我们需要创建网页的截图,并存储到我们的系统。它采用QT WebKit渲染引擎以各种格式创建图像。本文将帮助您使用PHP脚本和Linux命令行进行网页截图。
第1步:在Linux上安装wkhtmltoimage
从下载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(网页)图像。要求该脚本在Apache中启用了shell_exec功能。大多数共享主机提供商不允许这个功能。 创建一个文件名
getImage.php并把下面的代码: <?php $url = $_GET[‘url’]; // Website URL to Create Image $name = $_GET[‘img’]; // Output Image Name $command = "/usr/bin/wkhtmltoimage –no-images –load-error-handling ignore"; $dir_img = "/var/www/html/images/"; // Image files will be saved here $ex_cmd = "$command $url " . $dir_img . $name; $output = shell_exec($ex_cmd); ?> 使用以下了语法,演示URL生成网页(HTML)图像。
语法:
http://youdomain.com/getImage.php?url=<website url>&img=<image name>
例:
https://www.youcl.com/getImage.php?url=http://google.com&img=image1.jpg
第4步:PHP脚本对搜索引擎优化,改为友好的URL
如果你想为这个设置创建搜索引擎友好的URL,可以使用下面的步骤。 在您的Web服务器文档根目录下创建一些必要的目录
# mkdir -p /var/www/html/getImage/
# mkdir -p /var/www/html/getImage/images/
用以下内容创建
index.php文件。确保所有目录路径是正确的, <?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 = "/usr/bin/wkhtmltoimage –no-images –load-error-handling ignore"; $dir_img = "/var/www/html/getImage/images/"; // Image files will be saved here $ex_cmd = "$command $weburl " . $dir_img . $name; $output = shell_exec($ex_cmd); echo "<img src="/getImage/images/$name" >"; // comment this to disable image show on page ?> 现在,在这个目录下创建一个
.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://www.youcl.com/getImage/123.jpg/yahoo.com