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 相关文章推荐
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
php设计模式 DAO(数据访问对象模式)
Jun 26 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
php调用C代码的实现方法
Mar 11 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
PHP实现简单汉字验证码
Jul 28 PHP
php图像处理类实例
Jul 28 PHP
PHP实现的迷你漂流瓶
Jul 29 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
Yii CGridView用法实例详解
Jul 12 PHP
PHP实现上传多文件示例代码
Feb 20 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中fgetcsv()函数用法实例
2014/11/28 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
Python中字符串的格式化方法小结
2016/05/03 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
extern是什么意思
2016/03/10 面试题
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
会计专业毕业生自荐信范文
2013/12/20 职场文书
网络事业创业计划书范文
2014/01/09 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
美术教学感言
2014/02/22 职场文书
初一学生期末评语
2014/04/24 职场文书
网络技术专业求职信
2014/05/02 职场文书
公司总经理岗位职责范本
2014/08/15 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python
gojs实现蚂蚁线动画效果
2022/02/18 Javascript