百度刚好找到这个插件 ,其实还有不少类似的插件。但是觉得这个简单一点就拿来用了。(这个我是网上找的,只是拿来用。)
<?php if (isset($_GET[\'url\'])) { set_time_limit(0); $url = trim($_GET[\'url\']); $filePath = md5($url).\'.png\'; if (is_file($filePath)) { exit($filePath); } $command = "phantomjs snap.js {$url} {$filePath}"; @exec($command); exit($filePath); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <title>快照生成</title> <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> <style> * { margin: 0; padding: 0; } form { padding: 20px; } div { margin: 20px 0 0; } input { width: 200px; padding: 4px 2px; } #placeholder { display: none; } </style> </head> <body> <form action="" id="form"> <input type="text" id="url" /> <button type="submit">生成快照</button> <div> <img src="" alt="" id="placeholder" /> </div> </form> <script> $(function(){ $(\'#form\').submit(function(){ if (typeof($(this).data(\'generate\')) !== \'undefined\' && $(this).data(\'generate\') === true) { alert(\'正在生成网站快照,请耐心等待...\'); return false; } $(this).data(\'generate\', true); $(\'button\').text(\'正在生成快照...\').attr(\'disabled\', true); $.ajax({ type: \'GET\', url: \'?\', data: \'url=\' + $(\'#url\').val(), success: function(data){ $(\'#placeholder\').attr(\'src\', data).show(); $(\'#form\').data(\'generate\', false); $(\'button\').text(\'生成快照\').attr(\'disabled\', false); } }); return false; }); }); </script> </body> </html>
这个是js 放到phantomjs同已目录下面
var page = require(\'webpage\').create(); var args = require(\'system\').args; var url = args[1]; var filename = args[2]; page.open(url, function () { page.render(filename); phantom.exit(); });
我测试了下,大部分网站都能顺利截图,效果还不错,但是有一些登录以后才能访问的页面好像截取的只能是登录页,还有一些不能截取成功,一些图片加载的好像也截取不成功。
http://pan.baidu.com/s/1hAwii 程序下载