php使用CutyCapt实现网页截图保存的方法


Posted in PHP onOctober 03, 2016

本文实例讲述了php使用CutyCapt实现网页截图保存的方法。分享给大家供大家参考,具体如下:

网页截图这个功能大家可能用到最多的就是QQ截图,或利用asp.net来实现截图,其实我们也可以直接使用php来网页截图,这里就来给大家介绍php利用CutyCapt实现网页截图的流程:

CutyCapt下载地址:http://sourceforge.net/projects/cutycapt/files/cutycapt/

windows CutyCapt不需要安装,直接保存到你的电脑中即可,然后php代码如下写:

<?php
/*
网页截图功能,必须安装IE+CutyCapt
url:要截图的网页
out:图片保存路径
path:CutyCapt路径
cmd:CutyCapt执行命令
比如:http://你php路径.php?url=https://3water.com
*/
$url=$_GET["url"];
$imgname=str_replace('http://','',$url);
$imgname=str_replace('https://','',$imgname);
$imgname=str_replace('.','-',$imgname);
$out = 'D:/webroot/test/'.$imgname.'.png';
$path = 'D:/webserver/CutyCapt.exe';
$cmd = "$path --url=$url --out=$out";
echo $cmd;
system($cmd);
?>

如果你是linux系统就需要简单的配置一下CutyCapt,安装网站截图软件CutyCapt.

一、先安装Qt47,增加qt47的下载源,代码如下:

vi /etc/yum.repos.d/atrpms.repo
[atrpms]
name=CentOS $releasever ? $basearch ? ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=1
[atrpms-testing]
name=CentOS $releasever ? $basearch ? ATrpms testing
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=1
yum update
yum installqt47
yum installqt47-devel
yum installqt47-webkit
yum installqt47-webkit-devel

也许这里还会有报错提示:

warning: qt44-x11-4.4.3-10_4.el5.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID 66534c2b
error: Failed dependencies:
    libGLU.so.1()(64bit) is needed by qt44-x11-4.4.3-10_4.el5.x86_64
    libmng.so.1()(64bit) is needed by qt44-x11-4.4.3-10_4.el5.x86_64
//解决:
//yum -y installqt-devel*

二、安装 CutyCapt,代码如下:

cd /data0/software
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
mv cutycapt/CutyCapt /usr/local/cutycapt
cd /usr/local/cutycapt
qmake
make

此处可能会报错:make: *** [CutyCapt] Error 1

解决:yum update sqlite,再次执行 make,如果还不成功 qmake-qt47 再次执行make.

三、下载x-server,代码如下:

wget http://www.flexthinker.com/wp-content/uploads/2009/11/xvfb-run.sh.txt
mv ./xvfb-run.sh.txt/usr/local/cutycapt/xvfb-run.sh
chmodu+x /usr/local/CutyCapt/xvfb-run.sh

四、安装中文包

yum installfonts-chinese

五、安装ImageMagick

yum installImageMagick

六、测试,代码如下:

/usr/local/cutycapt/xvfb-run.sh --server-args="-screen 0, 1024x768x24"/usr/local/cutycapt/CutyCapt --url=https://3water.com--out=/tmp/163.jpg

163.jpg没有加载出flash.

七、下载64位flash插件,代码如下:

cd /data0/software
#wget http://119.188.72.26/1/ishare.down.sina.com.cn/14036482.so?ssig=YB70Xk7Ph9&Expires=1340899200&KID=sina,ishare&ip=1340777795,114.255.44.&fn=libflashplayer.so
http://ishare.iask.sina.com.cn/f/13659493.html
ll /usr/lib64/mozilla/plugins/
lrwxrwxrwx 1 root root 41 06-27 14:00 libflashplayer.so ->/usr/lib64/flash-plugin/libflashplayer.so
cp /data0/software/libflashplayer.so /usr/lib64/flash-plugin/

测试加载成功.

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
如何做到多笔资料的同步
Oct 09 PHP
在JavaScript中调用php程序
Mar 09 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
Zend Framework动作助手Json用法实例分析
Mar 05 PHP
php for 循环使用的简单实例
Jun 02 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 #PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 #PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 #PHP
php简单统计中文个数的方法
Sep 30 #PHP
php简单实现多维数组排序的方法
Sep 30 #PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 #PHP
PHP GD库相关图像生成和处理函数小结
Sep 30 #PHP
You might like
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
Python正则表达式学习小例子
2020/03/03 Python
Python PyQt5整理介绍
2020/04/01 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
历史教育专业个人求职信
2013/12/13 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
小学端午节活动总结
2015/02/11 职场文书
慰问信模板
2015/02/14 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
上班旷工检讨书
2015/08/15 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers