IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

PHP网页截图-网页快照实现

这一技客 2009-11-19 23:18:42 累计浏览 1,988 次
本机暂存

单纯使用PHP很难实现,还好在有个比较适中的解决方案:
CutyCapt的说明地址:http://cutycapt.sourceforge.net/

不过要求主机环境的支持:
Linux : 要求安装了qt或x-server
Windows:要求安装了IE(^_…)
下边分别以两种环境开始实现:
Windows :
1.下载 CutyCapt-Win32-2008-06-11.zip (6MB, .exe for Win32 systems)
2.

//要截图的网址
 $url = 'http://www.geekso.com';
//输出图片的位置与名称
$out = 'D:/ex.png';
 $path = 'D:/CutyCapt/CutyCapt.exe';//你下载CutyCapt存放的位置
 $cmd = "$path --url=$url --out=$out";
 //exec($cmd);
 system($cmd);


Linux :
安装了qt的Linux主机 :
Build Instructions
If your system is set up to compile Qt applications, building CutyCapt should be a simple matter of checking out the source code and running qmake and your version of make. As an example, if you are running Ubuntu Hardy Heron and have configured the system to use packages from hardy-backports, the following should do:

% sudo apt-get install subversion libqt4-webkit libqt4-dev g++
% svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
% cd cutycapt/CutyCapt
% qmake
% make
% ./CutyCapt -url=http://www.example.org -out=example.png

安装了x-server的Linux主机 :
Using CutyCapt without X server
You cannot use CutyCapt without an X server, but you can use e.g. Xvfb as light-weight server if you are not running an interactive graphical desktop environment. For example, you could use:

% xvfb-run -server-args=”-screen 0, 1024×768x24″ ./CutyCapt -url=… -out=…

使用帮助:
Usage
Open a command prompt and ask for help:

% CutyCapt -help
—————————————————————————-
Usage: CutyCapt -url=http://www.example.org/ -out=localfile.png
—————————————————————————-
-help Print this help page and exit
-url= The URL to capture (http:…|file:…|…)
-out= The target file (.png|pdf|ps|svg|jpeg|…)
-out-format= Like extension in -out, overrides heuristic
-min-width= Minimal width for the image (default: 800)
-max-wait= Don’t wait more than (default: 90000, inf: 0)
-delay= After successful load, wait (default: 0)
-user-styles= Location of user style sheet, if any
-header=: request header; repeatable; some can’t be set
-method= Specifies the request method (default: get)
-body-string= Unencoded request body (default: none)
-body-base64= Base64-encoded request body (default: none)
-app-name= appName used in User-Agent; default is none
-app-version= appVers used in User-Agent; default is none
-user-agent= Override the User-Agent header Qt would set
-javascript= JavaScript execution (default: on)
-java= Java execution (default: unknown)
-plugins= Plugin execution (default: unknown)
-private-browsing= Private browsing (default: unknown)
-auto-load-images= Automatic image loading (default: on)
-js-can-open-windows= Script can open windows? (default: unknown)
-js-can-access-clipboard= Script clipboard privs (default: unknown)
—————————————————————————-
is svg,ps,pdf,itext,html,rtree,png,jpeg,mng,tiff,gif,bmp,ppm,xbm,xpm

如果以上内容不能满足你的需求或都出现乱码请点击以下链接查看:
http://blog.saymoon.com/2009/11/take-snapshot-in-linux-command-line/

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,270)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,408)
  4. 我的PHP,Python和Ruby之路 (累计阅读 13,148)
  5. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,789)
  6. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  7. Redis消息队列的若干实现方式 (累计阅读 12,088)
  8. 到底什么是MVC? (累计阅读 11,868)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,709)
  10. Rolling cURL: PHP并发最佳实践 (累计阅读 11,488)