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 相关文章推荐
在任意字符集下正常显示网页的方法一
Apr 01 PHP
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
Aug 23 PHP
php文件上传简单实现方法
Jan 24 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
php实现微信支付之企业付款
May 30 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 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发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
php取出数组单个值的方法
2018/03/12 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
中秋晚会策划方案
2014/06/12 职场文书
部队2015年终工作总结
2015/04/02 职场文书
证婚人致辞精选
2015/07/28 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL
Docker部署Mysql8的实现步骤
2022/07/07 Servers