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 相关文章推荐
一个漂亮的php验证码类(分享)
Aug 06 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
php实现头像上传预览功能
Apr 27 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 PHP
Nginx+php配置文件及原理解析
Dec 09 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
正则表达式语法
2006/10/09 Javascript
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
Python实现线程池代码分享
2015/06/21 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
linux面试题参考答案(9)
2016/01/29 面试题
四年的大学生生活自我评价
2013/12/09 职场文书
大学计划书范文800字
2014/08/14 职场文书
起诉意见书范文
2015/05/19 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
tree shaking对打包体积优化及作用
2022/07/07 Java/Android